Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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.
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.
also
noconcatenate
should go beforeload not before the table name
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.
No,
Concatenate or NonConcatenate works after or before the load
Se tiro a função de agregação ele pede uma ela informando erro de sitaxe.
Se tiro, a query pede uma função de agregação.
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
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!
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