共用方式為


lag 分析 window 函式

適用於:核取記號為「是」Databricks SQL 核取記號為「是」Databricks Runtime

在 partition中,傳回前一列 expr 的值。

語法

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

引數

  • expr:任何類型的表達式。
  • offset:指定 offset的選擇性整數字面值。
  • default:與 相同類型的 expr表達式。
  • IGNORE NULLSRESPECT NULLS:指定時 IGNORE NULLS ,會忽略 NULL 的任何 expr 值。 預設值為 RESPECT NULLS
  • OVER 子句:描述視窗的 子句。 請參閱:Window 函式

傳回

結果類型符合 expr

如果 offset 為正數,則值會 offset 指定 OVER 子句中的 ORDER BY,從目前數據列前面的數據列產生。 offset 0 會使用目前數據列的值。 負 offset 會使用目前數據列後面的數據列值。 如果您未指定 offset 它預設為 1,則緊接在下列數據列。

如果在 partition內指定的 offset 沒有列,則會使用指定的 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