← SQL — Fonctions de fenêtrage
Leçon 8 / 9 — Chapitre 3: LAG et LEAD approfondis
Combiner LAG et CASE pour étiqueter une tendance
La variation calculée avec LAG (leçon précédente) peut être transformée en étiquette lisible grâce à CASE.
SELECT joueur, manche, score,
CASE
WHEN score - LAG(score) OVER (PARTITION BY joueur ORDER BY manche) > 0 THEN $q2$hausse$q2$
WHEN score - LAG(score) OVER (PARTITION BY joueur ORDER BY manche) < 0 THEN $q2$baisse$q2$
WHEN score - LAG(score) OVER (PARTITION BY joueur ORDER BY manche) = 0 THEN $q2$stable$q2$
ELSE $q2$premiere manche$q2$
END AS tendance
FROM scores_manche;
Pour la manche 3 de Nadia (14, contre 14 à la manche 2) : la variation vaut 0, donc tendance = 'stable'. Pour la manche 1 de chaque joueur, la variation vaut NULL (aucune des trois comparaisons n'est vraie) : c'est la branche ELSE qui s'applique, avec 'premiere manche'.
À retenir :
- Un
CASEpeut réutiliser la même expression LAG plusieurs fois pour classer son résultat en catégories lisibles. - La branche ELSE d'un CASE est indispensable dès qu'une valeur NULL (ici, l'absence de ligne précédente) doit être gérée explicitement, plutôt que de tomber dans une comparaison silencieusement fausse.
À vous de jouer : quelle est la tendance affichée pour la manche 3 de Boris (9, contre 12 à la manche 2) ?
🔒
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