LAST_VALUE
函数本身不支持自定义排序,但你可以在使用 LAST_VALUE
函数之前对数据进行排序
WITH sorted_data AS (
SELECT * FROM your_table
ORDER BY your_custom_column
)
SELECT
column1,
column2,
LAST_VALUE(column3) OVER (PARTITION BY column4 ORDER BY row_number() ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) as last_value_column3
FROM
sorted_data;
在这个示例中,我们首先使用 WITH
子句创建一个名为 sorted_data
的临时表,该表按照 your_custom_column
列对数据进行排序。然后,我们在主查询中使用 LAST_VALUE
函数,并通过 ROW_NUMBER()
函数为每一行分配一个行号,以便按照排序顺序获取每个分区中的最后一个值。注意,ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
表示窗口范围包括分区中的所有行。