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
表示窗口范圍包括分區中的所有行。