SQL USA GROUP BY per COUNT il numero di righe per ogni voce univoca in una determinata colonna


Esempio

Supponiamo di voler generare conteggi o subtotali per un dato valore in una colonna.

Dato questo tavolo, "Westerosians":

Nome GreatHouseAllegience
Arya rigido
cercei Lannister
Myrcella Lannister
yara Greyjoy
Catelyn rigido
Sansa rigido

Senza GROUP BY, COUNT restituirà semplicemente un numero totale di righe:

SELECT Count(*) Number_of_Westerosians
FROM Westerosians

ritorna...

Number_of_Westerosians
6

Ma aggiungendo GROUP BY, possiamo COUNT gli utenti per ogni valore in una determinata colonna, per restituire il numero di persone in una determinata Grande Casa, per esempio:

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

ritorna...

Casa Number_of_Westerosians
rigido 3
Greyjoy 1
Lannister 2

È comune combinare GROUP BY con ORDER BY per ordinare i risultati per categoria più grande o più piccola:

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

ritorna...

Casa Number_of_Westerosians
rigido 3
Lannister 2
Greyjoy 1