lag 分析視窗函式

適用于:核取標示為是 Databricks SQL 檢查標示為是 Databricks Runtime

從資料分割內的前一個資料列傳回 的值 expr

語法

lag( expr [, offset [, default] ] ) [ IGNORE NULLS | RESPECT NULLS ] OVER clause

參數

  • expr:任何類型的運算式。
  • offset:指定位移的選擇性 INTEGER 常值。
  • default:與 相同類型的 expr 運算式。
  • IGNORE NULLSRESPECT NULLS :指定 時 IGNORE NULLS ,會忽略 Null 的任何 expr 值。 預設值為 RESPECT NULLS
  • OVER 子句:描述視窗化的 子句。 請參閱: 視窗函式

返回

結果類型符合 expr

如果 offset 為正數,則值源自 OVER 子句中指定 ORDER BY 在目前資料列前面的資料列 offset 。 0 的位移會使用目前資料列的值。 負位移會使用目前資料列後面的資料列的值。 如果您未指定 offset 它預設為 1,則緊接在下列資料列。

如果資料分割內沒有位於指定位移的資料列,則會使用指定的 default 。 預設值 defaultNULL 。 您必須提供 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