LEAD和LAG窗口函数

LEAD 函数用于获取当前行后面的行的数据。

SELECT
  column_name,
  LEAD(column_name, n) OVER (ORDER BY some_column) AS next_value
FROM
  your_table;

LAG 函数用于获取当前行前面的行的数据。

SELECT
  column_name,
  LAG(column_name, n) OVER (ORDER BY some_column) AS previous_value
FROM
  your_table;
  • column_name: 要获取数据的列。
  • n: 指定要获取的前面行的偏移量。
  • some_column: 用于确定行顺序的列。

想找到上一个非空记录,可以在 LAG 函数中使用 IGNORE NULLS 子句。这样,LAG 函数会跳过空值,直到找到非空值。

SELECT
  column_name,
  LAG(column_name IGNORE NULLS) OVER (ORDER BY some_column) AS previous_non_null_value
FROM
  your_table;
posted @ 2024-01-14 16:52  emye  阅读(207)  评论(0)    收藏  举报