PaliSkill
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 CASE peut 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