4 votes

Erreur dans le groupe en utilisant la ruche

J'utilise le code suivant et j'obtiens l'erreur suivante

      select d.searchpack,d.context, d.day,d,txnid,d.config, c.sgtype from ds3resultstats d join       
     context_header c on (d.context=c.contextid) where (d.day>='2012-11-15' and d.day<='2012-11-25' and  c.sgtype='Tickler' and d.config like 
'%people%') GROUP BY d.context limit 10;
        FAILED: Error in semantic analysis: line 1:7 Expression Not In Group By Key d

Je suppose que j'utilise le groupe par de manière incorrecte.

7voto

pensz Points 752

Lorsque vous utilisez group by vous ne pouvez pas sélectionner d'autres champs supplémentaires. Vous pouvez uniquement sélectionner une clé de groupe avec la fonction d'agrégation.

Voir groupe de ruches par pour plus d'informations.

Questions connexes .

Exemple de code :

select d.context,count(*)
from ds3resultstats
...
group by d.context

ou regrouper par plusieurs champs.

select d.context, d.field2, count(*)
from ds3resultstats
...
group by d.context, d.field2

2voto

Il s'attend à ce que toutes les colonnes soient ajoutées avec group by. Je suis également confronté au même problème, mais j'ai réussi à trouver une solution à ce genre de problème. vous pouvez utiliser collect_set avec le nom de la colonne pour obtenir la sortie. Par exemple select d.searchpack,collect_set(d.context) from sampletable group by d.searchpack;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X