LAG / LEAD の使い方

前の行・次の行の値を見る

書き方

LAG(列 [, n [, 既定値]]) OVER (ORDER BY …)
LEAD(列 [, n [, 既定値]]) OVER (PARTITION BY … ORDER BY …)

LAG は n 行前(省略時は 1 行前)、LEAD は n 行後の値です。前後の行がないときは NULL か既定値になります。前日との差などに使います。

例

SELECT day, amount, amount - LAG(amount) OVER (ORDER BY day) AS diff FROM sales;

実際に打って練習する

Oracle コースの Lv17「前後の行 LAG と LEAD」で覚えます。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。

Lv1〜3 はログインすると無料で試せます(それより先はゴールド以上のプランで遊べます)。

Oracle SQL・PL/SQL の構文一覧へ戻る