PaliSkill
← SQL débutant

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 colonne combiné à COUNT(*) compte le nombre de lignes séparément pour chaque groupe.
  • Toute colonne non agrégée du SELECT doit apparaître dans le GROUP 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.