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。