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