Leçon 4 / 10 — Chapitre 6: GROUP BY et HAVING
GROUP BY sur plusieurs colonnes
GROUP BY peut regrouper sur plusieurs colonnes à la fois, séparées par des virgules — un groupe est alors défini par la combinaison des valeurs de toutes ces colonnes, pas par chacune séparément.
SELECT categorie, prix, COUNT(*) FROM produits GROUP BY categorie, prix;
Ce code regroupe les lignes qui partagent à la fois la même categorie et le même prix : puisque Cahier (papeterie, 500) et Dentifrice (hygiene, 500) ont un prix identique mais une catégorie différente, ils forment deux groupes distincts, chacun avec COUNT(*) égal à 1.
Toutes les colonnes non agrégées du SELECT doivent apparaître dans le GROUP BY (rappel de la deuxième leçon de ce chapitre), même avec un regroupement sur plusieurs colonnes :
SELECT categorie, prix FROM produits GROUP BY categorie;
Ce code est généralement invalide : prix apparaît dans le SELECT sans être agrégé ni présent dans le GROUP BY — il manque prix dans la liste du regroupement, ou une fonction d'agrégation autour de lui.
À retenir :
GROUP BY colonne1, colonne2définit un groupe par la combinaison des valeurs des deux colonnes.- Chaque colonne non agrégée du
SELECTdoit figurer dans leGROUP BY, quel que soit le nombre de colonnes de regroupement.
À vous de jouer : écrivez une requête qui regroupe les produits par categorie et par stock, avec un COUNT(*) pour chaque groupe.
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.