← SQL — Fonctions de fenêtrage
Leçon 9 / 9 — Chapitre 9: Mise en pratique : résultats académiques
Cas pratique final du module : un rapport complet
Ce cas pratique referme le module entier en combinant, dans une seule requête, un classement par filière (RANK), une mention (CASE sur une moyenne de fenêtre) et une progression (FIRST_VALUE/LAST_VALUE) — trois techniques indépendantes, réunies comme au chapitre 6.
WITH bilan AS (
SELECT DISTINCT e.nom, e.filiere,
AVG(n.note) OVER w AS moyenne_finale,
RANK() OVER (PARTITION BY e.filiere ORDER BY AVG(n.note) OVER w DESC) AS rang_filiere,
LAST_VALUE(n.note) OVER w - FIRST_VALUE(n.note) OVER w AS ecart_total
FROM notes_examens n
JOIN etudiants e ON e.id = n.etudiant_id
WINDOW w AS (
PARTITION BY n.etudiant_id ORDER BY n.session
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
)
)
SELECT nom, filiere, moyenne_finale, rang_filiere,
CASE
WHEN moyenne_finale >= 16 THEN $q2$mention tres bien$q2$
WHEN moyenne_finale >= 14 THEN $q2$mention bien$q2$
WHEN moyenne_finale >= 12 THEN $q2$mention assez bien$q2$
ELSE $q2$admis sans mention$q2$
END AS mention,
ecart_total
FROM bilan
ORDER BY filiere, rang_filiere;
Étape par étape :
- La fenêtre nommée
w(avec son cadre complet) calcule à la fois la moyenne finale, un classement par filière et l'écart de progression, en une seule définition partagée. rang_filiereclasse chaque étudiant parmi les membres de sa propre filière selon sa moyenne finale.mentiontransforme cette moyenne en étiquette lisible.- Résultat final : Amina (info, rang 1, moyenne 14, mention bien, écart +4) ; Bruno (info, rang 2, moyenne 12, mention assez bien, écart +4) ; Chiara (gestion, rang 1, moyenne 16, mention tres bien, écart +3) ; Driss (gestion, rang 2, moyenne 13, mention assez bien, écart +4).
À retenir :
- Ce rapport final combine, dans une seule requête lisible, la quasi-totalité des techniques vues dans ce module : PARTITION BY, RANK, une fenêtre nommée à cadre complet, FIRST_VALUE/LAST_VALUE et CASE — la synthèse de tout le parcours sur les fonctions de fenêtrage.
À vous de jouer : quelle mention obtient l'étudiant classé rang_filiere = 1 en filière gestion ?
🔒
Continuez ce module
Débloquez les leçons restantes ainsi que la certification finale.
2 500 XOF / 3,81 € / 4,15 $
Débloquez les 72 leçons restantes de ce module
Votre paiement est vérifié avant l'activation de l'accès