Synthèse : restituer une recommandation argumentée
Qui inviter à la soirée de lancement ?
Section titled “Qui inviter à la soirée de lancement ?”La dernière pièce manquante : identifier les adhérents les plus fidèles, candidats naturels à une invitation prioritaire.
query(""" SELECT a.prenom, a.nom, COUNT(*) AS nb_emprunts FROM emprunts e JOIN adherents a ON a.id = e.adherent_id GROUP BY a.id HAVING COUNT(*) >= 2 ORDER BY nb_emprunts DESC""") prenom nom nb_emprunts0 Amelie Rousseau 31 Sarah Lemoine 22 Youssef Amrani 23 Chloe Petit 24 Karim Belkacem 2Transformer un tableau en argument visuel
Section titled “Transformer un tableau en argument visuel”Une table de nombres convainc moins qu’un graphique. pandas s’interface directement avec matplotlib :
import matplotlib.pyplot as plt
df_categories = query(""" SELECT d.categorie, COUNT(*) AS nb_emprunts FROM emprunts e JOIN documents d ON d.id = e.document_id GROUP BY d.categorie ORDER BY nb_emprunts DESC""")
df_categories.plot(kind="bar", x="categorie", y="nb_emprunts", legend=False, title="Emprunts par catégorie", color="#4C72B0")plt.ylabel("Nombre d'emprunts")plt.tight_layout()plt.savefig("emprunts_par_categorie.png")Le graphique obtenu est une simple barre par catégorie, avec BD culminant à 8 emprunts, largement devant les trois autres catégories (2 à 3 emprunts chacune) — la lecture visuelle confirme en un coup d’œil ce que la requête d’agrégation avait déjà montré.
La recommandation
Section titled “La recommandation”En remontant chaque étape de ce module :
- Les emprunts de bande dessinée représentent plus de la moitié du volume total d’emprunts (8 sur 15) — la catégorie à renforcer en nombre d’exemplaires est sans ambiguïté la BD.
- Trois adhérents inscrits (Hugo Bernard, Paul Simon, Victor Lefebvre) n’ont jamais emprunté : une communication ciblée vers eux, plutôt qu’une invitation générique, a plus de chances de les activer.
- Cinq adhérents ont emprunté au moins deux fois, avec Amélie Rousseau en tête (3 emprunts, dont 2 BD) : ce sont les profils à inviter en priorité à la soirée de lancement, en tant qu’ambassadeurs naturels.
Chacune de ces trois phrases est directement traçable à une requête SQL précise des leçons précédentes — c’est cette traçabilité, plus que l’élégance du SQL en lui-même, qui fait la valeur d’une recommandation d’analyste de données.
Bilan du module
Section titled “Bilan du module”Ce module a couvert, dans l’ordre : CREATE TABLE et les contraintes d’intégrité (PRIMARY KEY, UNIQUE, CHECK, REFERENCES), l’insertion en masse, les requêtes SELECT/WHERE/ORDER BY/LIMIT, les agrégations GROUP BY/HAVING, les jointures INNER JOIN et LEFT JOIN (anti-jointure), une sous-requête de comparaison à une moyenne, et la restitution graphique d’un résultat.
Ces briques reviendront tout au long du cours : les jointures et agrégations dans le module 4 (classification), les anti-jointures dans le module 8 (séries temporelles), les requêtes paramétrées dans le module 10 (agents IA).
Prochaine étape
Section titled “Prochaine étape”👉 Module 3 : Régression & classification from scratch
Junior TSAFACK – 12/09/2026