LAST_VALUE()
是一个窗口函数,用于在 SQL 查询中获取某列的最后一个值
以下是 LAST_VALUE()
函数的基本语法:
LAST_VALUE(column) OVER (
[PARTITION BY partition_columns]
ORDER BY order_columns
[ROWS/RANGE frame_clause]
)
在这里,column
是要获取最后一个值的列,partition_columns
是可选的分区列,order_columns
是排序列,frame_clause
是定义窗口范围的子句。
当处理空值时,LAST_VALUE()
函数会返回指定窗口中的最后一个非空值。如果窗口中所有值都为空,那么结果将为 NULL。
例如,假设我们有一个名为 sales
的表,其中包含 date
和 amount
两列。我们想要计算每个日期的最后一个非空销售额。以下是使用 LAST_VALUE()
函数的示例查询:
SELECT
date,
amount,
LAST_VALUE(amount) OVER (ORDER BY date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS last_value
FROM
sales;
在这个示例中,我们按日期对表进行排序,并使用 LAST_VALUE()
函数获取每个日期的最后一个非空销售额。如果某个日期的销售额为空,那么结果将为该日期之前的最后一个非空销售额。如果没有非空销售额,结果将为 NULL。