51 votes

Comment fonctionne GROUP BY ?

Supposons que j'ai une table Tab1 avec des attributs - a1 , a2 , ... etc. Aucun des attributs n'est unique.

Quelle sera la nature de la requête suivante ? Renverra-t-il toujours une seule ligne ?

 SELECT a1, a2, sum(a3) FROM Tab1 GROUP BY a1, a2

70voto

Mike Sokolov Points 3441

GROUP BY renvoie une seule ligne pour chaque combinaison unique des champs GROUP BY Ainsi, dans votre exemple, chaque combinaison distincte de (a1, a2) apparaissant dans les lignes de Tab1 résulte en une ligne dans la requête représentant le groupe de lignes avec la combinaison donnée de valeurs de groupe par champ . Les fonctions d'agrégat comme SUM() sont calculées sur les membres de chaque groupe.

17voto

Mark Sherretta Points 5272

GROUP BY renvoie une ligne pour chaque combinaison unique de champs dans la clause GROUP BY Pour garantir une seule ligne, vous devrez utiliser une fonction d'agrégat - COUNT , SUM , MAX - sans clause GROUP BY

11voto

SuL Points 99

GROUP BY regroupe tous les enregistrements identiques.

 SELECT COUNT(ItemID), City
FROM Orders
GROUP BY City;

----------------------------------------
13  Sacrmento
23  Dallas
87  Los Angeles
5   Phoenix

Si vous ne regroupez pas par City il affichera simplement le nombre total de ItemID .

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