nth_value 分析窗口函数

适用于:check marked yes Databricks SQL check marked yes Databricks Runtime

返回位于窗口中特定 offset 处的值。

语法

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

参数

  • expr:一个任意类型的表达式。
  • offset:大于 0 的 INTEGER 字面量。
  • IGNORE NULLSRESPECT NULLS:使用 IGNORE NULLS 时,计数将忽略任何为 NULL 的 expr 值。 默认为 RESPECT NULLS
  • OVER 子句:描述窗口的子句。 请参阅:窗口函数

返回

结果类型与 expr 类型匹配。

窗口函数返回从窗口框架开头算起的第 offset 行处的 expr 值。

如果不存在这样的第 offset 行,则返回 NULL

必须将 ORDER BY 子句与此函数结合使用。 如果顺序不唯一,则结果是不确定的。

示例

> SELECT a, b, nth_value(b, 2) OVER (PARTITION BY a ORDER BY b)
    FROM VALUES ('A1', 2), ('A1', 1), ('A2', 3), ('A1', 1) tab(a, b);
 A1 1   1
 A1 1   1
 A1 2   1
 A2 3   NULL