Leçon 1 / 10 — Chapitre 6: GROUP BY et HAVING
GROUP BY : regrouper des lignes
GROUP BY regroupe les lignes qui partagent la même valeur dans une colonne donnée — la pièce manquante entrevue au chapitre précédent, quand une colonne non agrégée ne pouvait pas se combiner directement avec une fonction d'agrégation.
SELECT categorie FROM produits GROUP BY categorie;
Ce code affiche chaque categorie une seule fois, en regroupant les lignes qui la partagent : papeterie, hygiene, boisson, alimentaire — un résultat qui ressemble beaucoup à SELECT DISTINCT categorie (vu au chapitre précédent), mais GROUP BY va bien plus loin en se combinant avec des fonctions d'agrégation, comme la suite de ce chapitre le montre.
GROUP BY s'écrit après un éventuel WHERE, et avant un éventuel ORDER BY :
SELECT categorie FROM produits WHERE prix > 200 GROUP BY categorie;
Ce code filtre d'abord sur prix > 200 (vu au deuxième chapitre), puis regroupe les catégories restantes : le filtre s'applique avant le regroupement, exactement comme il s'applique avant une agrégation (vu au chapitre précédent).
À retenir :
GROUP BY colonneregroupe les lignes qui partagent la même valeur dans cette colonne.GROUP BYs'écrit après un éventuelWHERE, et avant un éventuelORDER BY.
À vous de jouer : écrivez une requête qui regroupe les produits de produits par categorie.
À vous de jouer
À faireCombien de valeurs distinctes de catégorie GROUP BY catégorie affiche-t-il sur produits ?
Testez cette requête dans un bac à sable SQL en ligne (SQLite Fiddle, W3Schools "Try SQL", ou tout autre) pour vérifier le résultat avant de répondre.
À vous de jouer
À faireGROUP BY s'ecrit-il avant ou après un eventuel WHERE ?
Testez cette requête dans un bac à sable SQL en ligne (SQLite Fiddle, W3Schools "Try SQL", ou tout autre) pour vérifier le résultat avant de répondre.
💡 avant ou après