Exercice 10 / 60

GROUP BY

ConsigneCompte le nombre d'etudiants par ville. Affiche la ville et le compte (nommé nb), en groupant par ville.

📖 Cours

group BY regroupe les lignes qui partagent la même valeur, pour appliquer une agrégation a chaque groupe. Syntaxe : select col, count(*) from table group BY col;

GROUP BY verse chaque ligne dans le seau de sa catégorie, puis on lit un compte sur chaque seau
GROUP BY verse chaque ligne dans le seau de sa catégorie, puis on lit un compte sur chaque seau

Exemple (table produits) :

SELECT categorie, COUNT(*) AS nb FROM produits GROUP BY categorie;-> le nombre de produits pour chaque categorie

Règle sûre : toute colonne du select qui n'est pas dans une fonction d'agrégation doit être dans le group BY. PostgreSQL n'admet qu'une exception : si le regroupement porte sur la clé primaire de la table, il laisse passer les autres colonnes, puisque la clé primaire les détermine (select id, nom, count(*) from etudiants group BY id est accepté). En dehors de ce cas précis, applique la règle.

Envie d'aller plus loin ? Découvrez nos formations certifiées Bac+2 à Bac+5 →