PaliSkill
SQL — Fonctions de fenêtrage

Leçon 3 / 9 — Chapitre 3: LAG et LEAD approfondis

LAG/LEAD avec une valeur par défaut

Un troisième argument optionnel remplace le NULL habituel par une valeur de repli : LAG(colonne, n, valeur_defaut).

SELECT joueur, manche, score,
  LAG(score, 1, 0) OVER (PARTITION BY joueur ORDER BY manche) AS score_precedent
FROM scores_manche;

Pour la toute première manche de chaque joueur, il n'existe aucune ligne précédente : au lieu de NULL, cette requête affiche 0, la valeur par défaut fournie. Pour les manches suivantes, où une vraie ligne précédente existe, la valeur par défaut n'a aucun effet — le vrai score précédent est renvoyé normalement.

À retenir :

  • Le troisième argument de LAG/LEAD ne s'applique que quand il n'existe pas de ligne à décaler ; sinon, la vraie valeur de la ligne voisine est utilisée.
  • Ce mécanisme évite d'avoir à gérer des NULL après coup avec COALESCE(), mais uniquement pour ce cas précis (absence de ligne).

À vous de jouer : avec cette même requête, quelle est la valeur de score_precedent pour la manche 2 de Nadia ? Le score par défaut (0) s'applique-t-il ici ?

🔒

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