PaliSkill
SQL Intermédiaire

Leçon 9 / 9 — Chapitre 8: Mise en pratique : bibliothèque

Cas pratique : rapport d'activité de la médiathèque

Ce cas pratique de synthèse combine jointure, agrégation et HAVING pour identifier les adhérents les plus actifs.

SELECT a.nom AS adherent, COUNT(*) AS nb_emprunts
FROM emprunts e
JOIN adherents a ON e.adherent_id = a.id
GROUP BY a.nom
HAVING COUNT(*) >= 2;

Étape par étape :

  1. La jointure associe chaque emprunt au nom de son adhérent.
  2. GROUP BY a.nom forme un groupe par adhérent : Amara (2, emprunts 1 et 3), Koffi (2, emprunts 2 et 5), Nadia (1, emprunt 4), Samuel (1, emprunt 6).
  3. HAVING COUNT(*) >= 2 ne garde que les adhérents ayant emprunté au moins 2 livres : Amara et Koffi.

Résultat final : 2 lignes — Amara et Koffi, chacun avec 2 emprunts. Yasmin, qui n'a jamais rien emprunté, n'apparaît même pas dans la jointure de départ.

À retenir :

  • HAVING filtre les groupes après agrégation, exactement comme dans les chapitres précédents — ici appliqué à un scénario de fidélisation.
  • Un adhérent totalement absent de emprunts (comme Yasmin) n'apparaît dans aucun groupe : une jointure interne ne peut agréger que ce qu'elle a d'abord réussi à relier.

À vous de jouer : le nom 'Nadia' apparaît-il dans ce résultat final ? Justifiez à partir de son nombre d'emprunts.

🔒

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