lag
分析 window 函式
適用於:Databricks SQL Databricks Runtime
在 partition中,傳回前一列 expr
的值。
語法
lag( expr [, offset [, default] ] ) [ IGNORE NULLS | RESPECT NULLS ] OVER clause
引數
-
expr
:任何類型的表達式。 -
offset
:指定 offset的選擇性整數字面值。 -
default
:與 相同類型的expr
表達式。 -
IGNORE NULLS
或RESPECT NULLS
:指定時IGNORE NULLS
,會忽略 NULL 的任何expr
值。 預設值為RESPECT NULLS
。 - OVER 子句:描述視窗的 子句。 請參閱:Window 函式。
傳回
結果類型符合 expr
。
如果 offset
為正數,則值會 offset
指定 OVER 子句中的 ORDER BY,從目前數據列前面的數據列產生。
offset 0 會使用目前數據列的值。
負 offset 會使用目前數據列後面的數據列值。
如果您未指定 offset
它預設為 1,則緊接在下列數據列。
如果在 partition內指定的 offset 沒有列,則會使用指定的 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