PaliSkill
SQL débutant

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, colonne2 définit un groupe par la combinaison des valeurs des deux colonnes.
  • Chaque colonne non agrégée du SELECT doit figurer dans le GROUP 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 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