Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Contar número de registros que forem iguais

Bom dia pessoal, alguma dica de como eu posso fazer para contar um determinando número de registros porém seguindo as premissas abaixo:

o script vai importando os dados começando com 1 para a primeira vez que aparecer o código que está na coluna 2.
E quando na coluna 2 encontrar um segundo registro de mesmo código ele conta 2, e assim sucessivamente até ler todo o arquivo.

Base de dados:

000078 01744 26/03/2018 11:58

000079 02158 26/03/2018 11:58

000080 02211 26/03/2018 11:58

000081 00692 26/03/2018 11:59

000082 02284 26/03/2018 11:59

000083 00140 26/03/2018 11:59

000084 01744 26/03/2018 12:00

000085 02179 26/03/2018 12:00

000086 02265 26/03/2018 12:00

000087 00944 26/03/2018 12:00

000088 00771 26/03/2018 12:00

000089 01998 26/03/2018 12:01

000090 02175 26/03/2018 12:01

000091 02200 26/03/2018 12:02

000092 02046 26/03/2018 12:03

000093 01744 26/03/2018 12:04

000094 02155 26/03/2018 12:04

000095 02298 26/03/2018 12:05

000096 02266 26/03/2018 12:07

000097 00178 26/03/2018 12:07

000098 02143 26/03/2018 12:09

000099 02159 26/03/2018 13:00

000100 02310 26/03/2018 13:00

000101 01227 26/03/2018 13:01

000102 02211 26/03/2018 13:04

000103 00140 26/03/2018 13:08

000104 02104 26/03/2018 13:09

000105 02158 26/03/2018 13:12

000106 01744 26/03/2018 13:12

Exemplo que gostaria que ficasse, na tabela abaixo foi encontrado o mesmo código (1744) 4 vezes.

000078 01744 26/03/2018 11:58 1

000079 02158 26/03/2018 11:58 1

000080 02211 26/03/2018 11:58 1

000081 00692 26/03/2018 11:59 1

000082 02284 26/03/2018 11:59 1

000083 00140 26/03/2018 11:59 1

000084 01744 26/03/2018 12:00 2

000085 02179 26/03/2018 12:00 1

000086 02265 26/03/2018 12:00 1

000087 00944 26/03/2018 12:00 1

000088 00771 26/03/2018 12:00 1

000089 01998 26/03/2018 12:01 1

000090 02175 26/03/2018 12:01 1

000091 02200 26/03/2018 12:02 1

000092 02046 26/03/2018 12:03 1

000093 01744 26/03/2018 12:04 3

000094 02155 26/03/2018 12:04 1

000095 02298 26/03/2018 12:05 1

000096 02266 26/03/2018 12:07 1

000097 00178 26/03/2018 12:07 1

000098 02143 26/03/2018 12:09 1

000099 02159 26/03/2018 13:00 1

000100 02310 26/03/2018 13:00 1

000101 01227 26/03/2018 13:01 1

000102 02211 26/03/2018 13:04 1

000103 00140 26/03/2018 13:08 1

000104 02104 26/03/2018 13:09 1

000105 02158 26/03/2018 13:12 1

000106 01744 26/03/2018 13:12 4

É possível?

1 Solution

Accepted Solutions
mario_sergio_ti
Partner - Specialist
Partner - Specialist

temp_Tab_Dados:

Load * Inline [

NUM1 NUM2 DATA HORA

000078 01744 26/03/2018 11:58

000079 02158 26/03/2018 11:58

000080 02211 26/03/2018 11:58

000081 00692 26/03/2018 11:59

000082 02284 26/03/2018 11:59

000083 00140 26/03/2018 11:59

000084 01744 26/03/2018 12:00

000085 02179 26/03/2018 12:00

000086 02265 26/03/2018 12:00

000087 00944 26/03/2018 12:00

000088 00771 26/03/2018 12:00

000089 01998 26/03/2018 12:01

000090 02175 26/03/2018 12:01

000091 02200 26/03/2018 12:02

000092 02046 26/03/2018 12:03

000093 01744 26/03/2018 12:04

000094 02155 26/03/2018 12:04

000095 02298 26/03/2018 12:05

000096 02266 26/03/2018 12:07

000097 00178 26/03/2018 12:07

000098 02143 26/03/2018 12:09

000099 02159 26/03/2018 13:00

000100 02310 26/03/2018 13:00

000101 01227 26/03/2018 13:01

000102 02211 26/03/2018 13:04

000103 00140 26/03/2018 13:08

000104 02104 26/03/2018 13:09

000105 02158 26/03/2018 13:12

000106 01744 26/03/2018 13:12

](delimiter is ' ');

Tab_Dados:

Load

   NUM1,

   NUM2,

   DATA,

   HORA,

   If(Peek(NUM2)=NUM2, RangeSum(Peek(QtdNum2), 1), 1) As 'QtdNum2'

Resident temp_Tab_Dados

Order By NUM2, NUM1, DATA, HORA;

DROP Table temp_Tab_Dados;

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti

View solution in original post

10 Replies
Thiago_Justen_

Assim:

PONTO:

LOAD * INLINE [

ID,     COD,   DATA,       HORA

000078, 01744, 26/03/2018, 11:58

000079, 02158, 26/03/2018, 11:58

000080, 02211, 26/03/2018, 11:58

000081, 00692, 26/03/2018, 11:59

000082, 02284, 26/03/2018, 11:59

000083, 00140, 26/03/2018, 11:59

000084, 01744, 26/03/2018, 12:00

000085, 02179, 26/03/2018, 12:00

000086, 02265, 26/03/2018, 12:00

000087, 00944, 26/03/2018, 12:00

000088, 00771, 26/03/2018, 12:00

000089, 01998, 26/03/2018, 12:01

000090, 02175, 26/03/2018, 12:01

000091, 02200, 26/03/2018, 12:02

000092, 02046, 26/03/2018, 12:03

000093, 01744, 26/03/2018, 12:04

000094, 02155, 26/03/2018, 12:04

000095, 02298, 26/03/2018, 12:05

000096, 02266, 26/03/2018, 12:07

000097, 00178, 26/03/2018, 12:07

000098, 02143, 26/03/2018, 12:09

000099, 02159, 26/03/2018, 13:00

000100, 02310, 26/03/2018, 13:00

000101, 01227, 26/03/2018, 13:01

000102, 02211, 26/03/2018, 13:04

000103, 00140, 26/03/2018, 13:08

000104, 02104, 26/03/2018, 13:09

000105, 02158, 26/03/2018, 13:12

000106, 01744, 26/03/2018, 13:12

];

FINAL:

Load

*,

If(Previous(COD)=COD,Peek(Frequencia)+1,1) as Frequencia

Resident PONTO ORDER BY COD ASC;

drop Table PONTO;

Resultado:

Capturar.PNG

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
mario_sergio_ti
Partner - Specialist
Partner - Specialist

temp_Tab_Dados:

Load * Inline [

NUM1 NUM2 DATA HORA

000078 01744 26/03/2018 11:58

000079 02158 26/03/2018 11:58

000080 02211 26/03/2018 11:58

000081 00692 26/03/2018 11:59

000082 02284 26/03/2018 11:59

000083 00140 26/03/2018 11:59

000084 01744 26/03/2018 12:00

000085 02179 26/03/2018 12:00

000086 02265 26/03/2018 12:00

000087 00944 26/03/2018 12:00

000088 00771 26/03/2018 12:00

000089 01998 26/03/2018 12:01

000090 02175 26/03/2018 12:01

000091 02200 26/03/2018 12:02

000092 02046 26/03/2018 12:03

000093 01744 26/03/2018 12:04

000094 02155 26/03/2018 12:04

000095 02298 26/03/2018 12:05

000096 02266 26/03/2018 12:07

000097 00178 26/03/2018 12:07

000098 02143 26/03/2018 12:09

000099 02159 26/03/2018 13:00

000100 02310 26/03/2018 13:00

000101 01227 26/03/2018 13:01

000102 02211 26/03/2018 13:04

000103 00140 26/03/2018 13:08

000104 02104 26/03/2018 13:09

000105 02158 26/03/2018 13:12

000106 01744 26/03/2018 13:12

](delimiter is ' ');

Tab_Dados:

Load

   NUM1,

   NUM2,

   DATA,

   HORA,

   If(Peek(NUM2)=NUM2, RangeSum(Peek(QtdNum2), 1), 1) As 'QtdNum2'

Resident temp_Tab_Dados

Order By NUM2, NUM1, DATA, HORA;

DROP Table temp_Tab_Dados;

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
Thiago_Justen_

mario.sergio.ti‌também tinha feito algo com o RangeSum() mas o que postei gerou o mesmo resultado.

O que seria, na tua opinião, mais performático? Há muita diferença?

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Foi rápido em... rsrs

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Sim, mesmo resultado. Depois que terminei de postar, a sua resposta apareceu...

As funções "Range*" são performáticas, recomendo utiliza-los.

Acrescentei mais campos no Order By para caso a origem dos dados possam vir diferentes em algum momento.

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
Thiago_Justen_

Entendido mestre!

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Mas essa diferença só é significativa para grandes volumes de dados.

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
Anonymous
Not applicable
Author

E agora marco resposta correta pra quem? kkkk

mario_sergio_ti
Partner - Specialist
Partner - Specialist

kkkkk... Pode ser qualquer um... o importante é marcar a resposta como correta.

Abraço amigo.

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti