Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
Not applicable

Problemas no groupby com resident

Boa tarde a todos, estou enfrentando um problema de sintaxe que não consigo resolver. Alguém poderia me ajudar?

LCTR_TEMP1:

LOAD * Resident LCTR Order by new_idcliente , PESO_CTR , PESO_L_CTR ;

DROP table LCTR;

NoConcatenate

LCTR_TEMP2:

LOAD  * , Count(1)  Resident LCTR_TEMP1 Group by new_idcliente;

DROP table LCTR_TEMP1;

A tabela LCTR tras muitas colunas e por isso estou incluindo o " * ".

Obrigado.

Tags (1)
9 Replies

Re: Problemas no groupby com resident

Qual o erro de sintaxe?

Um erro que detectei foi na tabela LCTR_TEMP2. Ao utilizar uma função de agregação ,você deve fazer o GROUP BY por todas as outras dimensões que esta retornando em sua tabela.

MVP
MVP

Re: Problemas no groupby com resident

also

noconcatenate

should go beforeload not before the table name

thiago_mlg
Contributor II

Re: Problemas no groupby com resident

Bom dia,

Olha esse count(1) que vc está dando na tabela, desculpe, mas não faz sentido. Tente tira-lo e recarregar a tabela. E mesmo que vc desse um count(campo_qualquer) não faria sentido tambem, por que como o select passa registro a registro, se funcionasse no load ele daria sempre 1.

Abraços.

Re: Problemas no groupby com resident

No,

Concatenate or NonConcatenate works after or before the load

Not applicable

Re: Problemas no groupby com resident

Se tiro a função de agregação ele pede uma ela informando erro de sitaxe.

Not applicable

Re: Problemas no groupby com resident

Se tiro, a query pede uma função de agregação.

thiago_mlg
Contributor II

Re: Problemas no groupby com resident

Sim, ele irá pedir mesmo.

Alem do group by pedir uma função de agregação ele tambem exige que se coloque no group by todos os campos pelo qual vc esta trazendo na query, ou seja, como você está utilizando o script abaixo vc teria de colocar todos os campos.

LCTR_TEMP2:

LOAD  * , Count(1)  Resident LCTR_TEMP1 Group by new_idcliente, campo1, campo2, campo3, campo4, e assim com todos os campos;

Se a sua ideia é agrupar o NEW_IDCLIENTE contando quantos registros vc tem pelo id do cliente faça o seguinte:

LOAD  * , Count(NEW_IDCLIENTE)  Resident LCTR_TEMP1 Group by new_idcliente, campo1, campo2, campo3, campo4, e todos os campos.


Espero tem ajudado.


Thiago Gonçalo

rphpacheco
Contributor III

Re: Problemas no groupby com resident

Você está utilizando (*) para a leitura dos campos e colocando apenas o new_idcliente dentro do Group By e isso é errado. Todos os campos que não possuem agregação (Sum, Count, etc) deverão estar referenciados no group by. Agora, concordo com o Thiago que este count não faz sentido, uma vez que vc está querendo carregar todos os campos da tabela anterior.

Se queres apenas dar valor de contagem a cada registro de tabela, coloque apenas um simples ('1' as Registro) no lugar deste Count e elimine o Group By.


Abraço!

Employee
Employee

Re: Problemas no groupby com resident

Já conseguiu a resposta? Se sim, escolha uma e marque como "Correta" para fechar o tópico e nos ajudar a manter a comunidade organizada