PaliSkill
SQL Intermédiaire

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 BY et HAVING s'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(*).
  • HAVING filtre 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