lag
分析ウィンドウ関数
適用対象: Databricks SQL Databricks Runtime
パーティション内の前の行から expr
の値を返します。
構文
lag( expr [, offset [, default] ] ) [ IGNORE NULLS | RESPECT NULLS ] OVER clause
引数
expr
: 任意の型の式。offset
: オフセットを指定する INTEGER リテラル (省略可能)。default
:expr
と同じ型の式。IGNORE NULLS
またはRESPECT NULLS
:IGNORE NULLS
が指定されている場合、NULL のexpr
値はすべて無視されます。 既定では、RESPECT NULLS
です。- OVER 句: ウィンドウを記述する句です。 「ウィンドウ関数」を参照してください。
戻り値
結果の型は expr
と一致します。
offset
が正の場合、OVER 句で ORDER BY によって offset
が指定された現在の行の前の行から値が生成されます。
オフセット 0 の場合は、現在の行の値が使用されます。
負のオフセットの場合は、現在の行の後の行の値が使用されます。
offset
を指定しない場合の既定値 は 1 で、直後の行です。
パーティション内で、指定されたオフセットに行が存在しない場合は、指定されている default
が使用されます。
default
の既定値は NULL
です。
ORDER BY 句を指定する必要があります。
この関数は lead(expr, -offset, default)
の同意語です。
例
> SELECT a, b, lag(b) OVER (PARTITION BY a ORDER BY b)
FROM VALUES ('A1', 2), ('A1', 1), ('A2', 3), ('A1', 1) tab(a, b);
A1 1 NULL
A1 1 1
A1 2 1
A2 3 NULL