← SQL — Fonctions de fenêtrage
Leçon 9 / 9 — Chapitre 6: Combiner fenêtres, CASE et sous-requêtes
Cas pratique final : synthèse d'un bilan complet
Ce cas pratique final de chapitre combine trois notions vues séparément dans ce module : un total cumulé (SUM), une variation (LAG) et une étiquette de tendance (CASE) — dans une seule requête, via une CTE.
WITH bilan AS (
SELECT joueur, manche, score,
SUM(score) OVER (PARTITION BY joueur ORDER BY manche) AS total_cumule,
score - LAG(score) OVER (PARTITION BY joueur ORDER BY manche) AS variation
FROM scores_manche
)
SELECT joueur, manche, score, total_cumule,
CASE
WHEN variation > 0 THEN $q2$hausse$q2$
WHEN variation < 0 THEN $q2$baisse$q2$
WHEN variation = 0 THEN $q2$stable$q2$
ELSE $q2$premiere manche$q2$
END AS tendance
FROM bilan
ORDER BY joueur, manche;
Étape par étape :
- La CTE
bilancalcule, pour chaque manche, le total cumulé des scores et la variation par rapport à la manche précédente. - La requête englobante transforme cette variation en étiquette de tendance lisible.
- Pour Nadia : manche 1 (score 10, total 10, 'premiere manche') ; manche 2 (score 14, total 24, 'hausse') ; manche 3 (score 14, total 38, 'stable').
- Pour Boris : manche 1 (score 8, total 8, 'premiere manche') ; manche 2 (score 12, total 20, 'hausse') ; manche 3 (score 9, total 29, 'baisse').
À retenir :
- Une CTE peut calculer plusieurs fonctions de fenêtre indépendantes en une seule fois, que la requête englobante transforme ensuite librement (ici, via CASE) — la même architecture revient tout au long de ce chapitre : fenêtre(s) dans une CTE, logique métier par-dessus.
- Ce bilan combine, dans une seule requête lisible, trois techniques qui semblaient indépendantes au fil des chapitres précédents.
À vous de jouer : quelle est la valeur de total_cumule pour Boris à la manche 3 ?
🔒
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