适用于:
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,将忽略任何expr值NULL。 默认为RESPECT NULLS。 - OVER 子句:描述窗口的子句。 请参阅:窗口函数。
返回
结果类型匹配 expr。
如果offset为正值,则该值来自在 OVER 子句中offset指定的当前行的前面第ORDER BY行。
如果偏移量为 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