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 排序,我们可以找到每个部门的最后一个工资。