Adloun

Le tableau de bord de la médiathèque

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

Énoncé

Fournir un rapport d'activité de la médiathèque en 5 requêtes SQL distinctes répondant aux indicateurs suivants : (1) Volume : nombre d'emprunts réalisés en octobre 2025. (2) Palmarès : les 3 livres les plus empruntés (toutes périodes confondues), en mentionnant le titre et le nom de l'auteur. (3) Fidélité : les usagers ayant fait strictement plus d'emprunts que la moyenne des emprunts par emprunteur. (4) Alerte : la liste des identifiants des livres n'ayant jamais été empruntés. (5) Démographie : le nombre d'emprunteurs distincts par ville.

Corrigé

-- (1) Volume d'octobre 2025
SELECT COUNT(*) FROM emprunt WHERE jour >= '2025-10-01'; -- Renvoie 5

-- (2) Top 3 des livres les plus empruntés
SELECT titre, nom, COUNT(*) AS nb
FROM emprunt
JOIN livre  ON emprunt.id_livre  = livre.id_livre
JOIN auteur ON livre.id_auteur = auteur.id_auteur
GROUP BY livre.id_livre, titre, nom
ORDER BY nb DESC, titre LIMIT 3;

-- (3) Usagers au-dessus de la moyenne (moyenne = 10 emprunts / 5 emprunteurs = 2)
SELECT nom, COUNT(*) AS nb
FROM emprunt JOIN usager ON emprunt.id_usager = usager.id_usager
GROUP BY usager.id_usager, nom
HAVING COUNT(*) > 2.0;

-- (4) Livres n'ayant jamais été empruntés
SELECT id_livre FROM livre
EXCEPT
SELECT id_livre FROM emprunt;

-- (5) Nombre d'emprunteurs distincts par ville
SELECT ville, COUNT(DISTINCT emprunt.id_usager) AS emprunteurs
FROM usager JOIN emprunt ON emprunt.id_usager = usager.id_usager
GROUP BY ville;

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.