LAST_VALUE
是一個 SQL 窗口函數,用于獲取某個列在窗口范圍內的最后一個值
以下是 LAST_VALUE
函數的基本語法:
LAST_VALUE(column) OVER (
PARTITION BY partition_columns
ORDER BY order_columns
ROWS/RANGE frame_clause
)
其中:
column
:要獲取最后一個值的列。PARTITION BY partition_columns
:將結果集分為多個分區,每個分區都會應用 LAST_VALUE
函數。這是可選的。ORDER BY order_columns
:確定窗口范圍內的行順序。ROWS/RANGE frame_clause
:定義窗口范圍。這是可選的,默認情況下,窗口范圍包括當前行及其之前的所有行。以下是一個使用 LAST_VALUE
函數的示例:
SELECT
employee_id,
department_id,
salary,
LAST_VALUE(salary) OVER (
PARTITION BY department_id
ORDER BY employee_id
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) as last_salary_in_department
FROM employees;
在這個示例中,我們從 employees
表中選擇員工 ID、部門 ID、工資等信息,并使用 LAST_VALUE
函數計算每個部門的最后一個工資。通過對部門 ID 進行分區并按員工 ID 排序,我們可以找到每個部門的最后一個工資。