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 : papeterie2 (Cahier, Stylo), hygiene2 (Savon, Dentifrice), boisson1 (Jus), alimentaire1 (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 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