PaliSkill
SQL — Fonctions de fenêtrage

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

Détecter la dernière ligne d'une partition avec LEAD IS NULL

Symétriquement à LAG sur la première ligne, LEAD(colonne) vaut NULL sur la dernière ligne d'une partition — une propriété exploitable pour isoler ces dernières lignes.

SELECT joueur, manche
FROM (
  SELECT joueur, manche,
    LEAD(manche) OVER (PARTITION BY joueur ORDER BY manche) AS manche_suivante
  FROM scores_manche
) t
WHERE manche_suivante IS NULL;

Pour chaque joueur, seule sa dernière manche enregistrée n'a pas de manche suivante : manche_suivante y vaut NULL. Résultat : 2 lignes, la manche 3 de Nadia et la manche 3 de Boris.

À retenir :

  • LEAD(colonne) OVER (...) IS NULL, filtré via une sous-requête, isole la dernière ligne de chaque partition — la technique miroir de l'utilisation de LAG pour la première ligne.
  • Comme toujours, ce filtre passe par une sous-requête ou une CTE, puisque WHERE ne peut pas référencer directement une fonction de fenêtre.

À vous de jouer : combien de lignes cette requête renvoie-t-elle au total, sachant qu'il y a 2 joueurs distincts dans scores_manche ?

🔒

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