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 :
FROM / JOIN: On lie les tablesempruntetusagervia l'identifiant de l'usager pour associer chaque emprunt à la ville d'origine de l'emprunteur.GROUP BY: On regroupe les lignes parville.HAVING: On filtre les groupes pour ne garder que les villes totalisant au moins 3 lignes d'emprunts.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 clauseHAVING.
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.