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