Leçon 2 / 10 — Chapitre 6: GROUP BY et HAVING
GROUP BY avec COUNT
GROUP BY combiné à COUNT(*) (vu au chapitre précédent) répond à une question très courante : combien de lignes dans chaque groupe ?
SELECT categorie, COUNT(*) FROM produits GROUP BY categorie;
Ce code affiche, pour chaque catégorie, le nombre de produits qui lui appartiennent : papeterie → 2 (Cahier, Stylo), hygiene → 2 (Savon, Dentifrice), boisson → 1 (Jus), alimentaire → 1 (Biscuits).
C'est précisément ce qui manquait au chapitre précédent : SELECT categorie, COUNT(*) FROM produits; sans GROUP BY était invalide, puisque categorie avait plusieurs valeurs possibles pendant que COUNT(*) réduisait tout à une seule ligne. GROUP BY categorie résout exactement ce conflit, en calculant COUNT(*) séparément pour chaque groupe, plutôt que sur la table entière.
Règle essentielle à retenir : toute colonne du SELECT qui n'est pas agrégée (comme categorie ici) doit apparaître dans le GROUP BY — sans quoi le moteur SQL ne sait pas quelle valeur afficher pour cette colonne au sein d'un groupe.
À retenir :
GROUP BY colonnecombiné àCOUNT(*)compte le nombre de lignes séparément pour chaque groupe.- Toute colonne non agrégée du
SELECTdoit apparaître dans leGROUP BY.
À vous de jouer : écrivez une requête qui affiche, pour chaque categorie, le nombre de produits qu'elle contient.
Continuez ce module
Débloquez les leçons restantes ainsi que la certification finale.
2 500 XOF / 3,81 € / 4,15 $
Débloquez les 84 leçons restantes de ce module
Votre paiement est vérifié avant l'activation de l'accès