Leçon 7 / 9 — Chapitre 3: LAG et LEAD approfondis
LAG/LEAD avec un PARTITION BY sur plusieurs colonnes
PARTITION BY accepte plusieurs colonnes séparées par une virgule : les partitions sont alors formées par chaque combinaison de valeurs.
Table du chapitre 1 :
ventes_journalieres
id | vendeur | region | montant
1 | Aya | nord | 200
2 | Aya | nord | 250
3 | Aya | sud | 150
4 | Boubou | nord | 300
5 | Boubou | sud | 100
6 | Boubou | sud | 180
SELECT id, vendeur, region, montant,
LAG(montant) OVER (PARTITION BY vendeur, region ORDER BY id) AS montant_precedent
FROM ventes_journalieres;
Ici, les partitions sont formées par chaque paire (vendeur, region) : (Aya, nord), (Aya, sud), (Boubou, nord), (Boubou, sud). La ligne id 6 (Boubou, sud, 180) a pour ligne précédente dans sa propre partition id 5 (Boubou, sud, 100) : montant_precedent vaut 100. La ligne id 3 (Aya, sud) est seule dans sa partition (Aya, sud) : montant_precedent vaut NULL.
À retenir :
PARTITION BY colonne1, colonne2forme une partition par combinaison unique de valeurs des deux colonnes, pas seulement par la première.- LAG/LEAD (comme toute fonction de fenêtre) ne regarde jamais au-delà des limites de sa propre partition, même multi-colonnes.
À vous de jouer : quelle est la valeur de montant_precedent pour la ligne id 2 (Aya, nord, 250) ?
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