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。