PaliSkill
SQL — Fonctions de fenêtrage

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

LAG/LEAD avec un décalage : accéder à plusieurs lignes en arrière

LAG(colonne, n) accepte un deuxième argument : le nombre de lignes à remonter (par défaut, 1). LEAD(colonne, n) fonctionne symétriquement en avançant de n lignes.

Nouvelle table pour ce chapitre :

scores_manche
id | joueur | manche | score
1  | Nadia  | 1      | 10
2  | Nadia  | 2      | 14
3  | Nadia  | 3      | 14
4  | Boris  | 1      | 8
5  | Boris  | 2      | 12
6  | Boris  | 3      | 9
SELECT joueur, manche, score,
  LAG(score, 2) OVER (PARTITION BY joueur ORDER BY manche) AS score_il_y_a_2_manches
FROM scores_manche;

Pour la manche 3 de Nadia, LAG(score, 2) remonte de 2 lignes : la manche 1, score 10. Pour la manche 2 de Nadia, il faudrait remonter de 2 lignes, mais il n'en existe qu'une seule avant elle : le résultat est NULL.

À retenir :

  • Le deuxième argument de LAG/LEAD précise de combien de lignes on se décale ; par défaut, il vaut 1.
  • Si le nombre de lignes disponibles avant (ou après) la ligne courante est insuffisant pour le décalage demandé, le résultat est NULL — comme pour un décalage de 1 sur la première ligne.

À vous de jouer : quelle est la valeur de LAG(score, 2) OVER (...) pour la manche 3 de Boris ?

🔒

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