Adloun

informatique (tronc commun des prépas scientifiques) · Chapitre 16 · Exercice de TD

Le palmarès des villes

SQL : jointures, agrégation et requêtes imbriquées · niveau 3 (difficile)

Énoncé

Déterminer les villes comptabilisant au moins 3 emprunts de livres. Expliquer le raisonnement en détaillant chaque étape de la construction de la requête et vérifier le résultat obtenu à la main.

Corrigé

SELECT ville, COUNT(*) AS nb
FROM emprunt JOIN usager ON emprunt.id_usager = usager.id_usager
GROUP BY ville
HAVING COUNT(*) >= 3
ORDER BY nb DESC;

Résultat :

Lyon  | 6
Paris | 3

Raisonnement pas à pas :

  1. FROM / JOIN : On lie les tables emprunt et usager via l'identifiant de l'usager pour associer chaque emprunt à la ville d'origine de l'emprunteur.
  2. GROUP BY : On regroupe les lignes par ville.
  3. HAVING : On filtre les groupes pour ne garder que les villes totalisant au moins 3 lignes d'emprunts.
  4. SELECT / ORDER BY : On projette le nom de la ville et l'effectif associé en classant par ordre décroissant. Vérification : À Lyon, Alice effectue 3 emprunts et Chloé 3 emprunts, soit un total de 6. À Paris, Bruno en fait 2 et Emma 1, soit 3. À Nantes, David réalise 1 emprunt et Farid 0, soit 1. La ville de Nantes est donc à juste titre éliminée par la clause HAVING.

Exercices semblables

Le cours du chapitre · Tous les exercices du chapitre