PaliSkill
← SQL — Fonctions de fenêtrage

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

LAG() et LEAD() : valeur de la ligne précédente/suivante

LAG(colonne) OVER (...) renvoie la valeur de la ligne précédente, selon l'ordre défini ; LEAD(colonne) OVER (...) renvoie celle de la ligne suivante. Pour la toute première (ou dernière) ligne d'une partition, il n'existe pas de ligne précédente (ou suivante) : le résultat est alors NULL.

SELECT nom, equipe, anciennete,
  LAG(anciennete) OVER (PARTITION BY equipe ORDER BY anciennete DESC, id ASC) AS anciennete_precedente
FROM employes;

Dans l'équipe support (ordre : David, Farid, Elise), Farid reçoit l'ancienneté de David (7) comme anciennete_precedente ; Elise reçoit celle de Farid (7). David, premier de sa partition, n'a pas de ligne précédente : anciennete_precedente vaut NULL pour lui.

À retenir :

  • LAG(colonne) OVER (...) accède à la valeur de la ligne précédente (selon l'ORDER BY du OVER) ; LEAD(colonne) fait l'inverse, avec la ligne suivante.
  • La première ligne d'une partition n'a pas de ligne précédente : LAG y renvoie NULL (symétriquement pour LEAD sur la dernière ligne).
  • Comme les autres fonctions de fenêtrage, LAG/LEAD se combinent avec PARTITION BY pour comparer une ligne à sa voisine au sein du même groupe.

À vous de jouer : ajoutez une colonne LEAD(anciennete) OVER (...) à cette requête, et vérifiez qu'elle vaut NULL pour Elise (dernière de son équipe).

🔒

Continuez ce module

Débloquez les leçons restantes ainsi que l'attestation finale.

8 000 XOF / 12,20 € / 13,29 $

Débloquez les 78 leçons restantes de ce module

Pour vous communiquer où envoyer le paiement.

Moyen de paiement souhaité

Nous vous contactons pour le paiement — activé dès réception.