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.