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