SQL UTILISEZ GROUP BY pour COUNT le nombre de lignes pour chaque entrée unique dans une colonne donnée


Exemple

Supposons que vous souhaitiez générer des comptes ou des sous-totaux pour une valeur donnée dans une colonne.

Compte tenu de ce tableau, "Westerosians":

prénom GreatHouseAllegience
Arya Rigide
Cercei Lannister
Myrcella Lannister
Yara Greyjoy
Catelyn Rigide
Sansa Rigide

Sans GROUP BY, COUNT retournera simplement un nombre total de lignes:

SELECT Count(*) Number_of_Westerosians
FROM Westerosians

résultats...

Number_of_Westerosians
6

Mais en ajoutant GROUP BY, nous pouvons COMPTER les utilisateurs pour chaque valeur dans une colonne donnée, pour retourner le nombre de personnes dans une Grande Maison donnée, par exemple:

SELECT GreatHouseAllegience House, Count(*) Number_of_Westerosians
FROM Westerosians
GROUP BY GreatHouseAllegience

résultats...

Maison Number_of_Westerosians
Rigide 3
Greyjoy 1
Lannister 2

Il est courant de combiner GROUP BY avec ORDER BY pour trier les résultats par catégorie la plus grande ou la plus petite:

SELECT GreatHouseAllegience House, Count(*) Number_of_Westerosians
FROM Westerosians
GROUP BY GreatHouseAllegience
ORDER BY Number_of_Westerosians Desc

résultats...

Maison Number_of_Westerosians
Rigide 3
Lannister 2
Greyjoy 1