Leçon 5 / 9 — Chapitre 2: Jointures avancées et combinées
JOIN combiné à GROUP BY et HAVING
GROUP BY et HAVING, vus sur une seule table en SQL Débutant, s'appliquent exactement pareil sur le résultat d'une jointure — il suffit de les placer après le JOIN.
SELECT p.categorie, COUNT(*) AS nb_commandes
FROM produits p
JOIN commandes c ON p.id = c.produit_id
GROUP BY p.categorie
HAVING COUNT(*) >= 2;
La jointure associe d'abord chaque commande à la catégorie de son produit : commandes 1 et 2 → papeterie, commande 3 → hygiène, commande 4 → boisson, commande 5 → hygiène. GROUP BY p.categorie regroupe ensuite ces 5 lignes en 3 groupes : papeterie (2), hygiène (2), boisson (1). HAVING COUNT(*) >= 2 élimine enfin le groupe boisson, qui n'a qu'une seule commande.
Résultat final : 2 lignes — papeterie (2), hygiène (2).
À retenir :
GROUP BYetHAVINGs'appliquent après une jointure exactement comme sur une seule table, mais sur les lignes déjà combinées.- Chaque ligne du résultat joint compte dans le regroupement — une commande, pas un produit, ici l'unité comptée par
COUNT(*). HAVINGfiltre les groupes obtenus après la jointure et le regroupement, jamais avant.
À vous de jouer : recalculez le résultat avec HAVING COUNT(*) >= 1 à la place de >= 2, et identifiez la catégorie supplémentaire qui apparaîtrait.
Continuez ce module
Débloquez les leçons restantes ainsi que la certification finale.
2 500 XOF / 3,81 € / 4,15 $
Débloquez les 80 leçons restantes de ce module
Votre paiement est vérifié avant l'activation de l'accès