Adloun

Le palmarès des villes

Exercice · informatique (tronc commun des prépas scientifiques), chapitre 16 — SQL : jointures, agrégation et requêtes imbriquées

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

Les autres exercices de ce chapitre Le cours du chapitre

Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.