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 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.