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 l'attestation finale.
5 000 XOF / 7,62 € / 8,31 $
Débloquez les 91 leçons restantes de ce module
Pour vous communiquer où envoyer le paiement.
Moyen de paiement souhaité
Nous vous contactons pour le paiement — activé dès réception.