阅读量:0
在 SQL 中,LAST_VALUE
是一个窗口函数(Window Function),它用于获取每个窗口(Window)中的最后一个值
以下是 LAST_VALUE
函数的基本语法:
LAST_VALUE(expression) OVER ( [PARTITION BY partition_expression] ORDER BY order_expression [ROWS/RANGE frame_specification] )
其中:
expression
:要获取最后一个值的列或表达式。PARTITION BY partition_expression
:可选项,用于将结果集分成多个分区,然后对每个分区应用LAST_VALUE
函数。ORDER BY order_expression
:用于确定窗口中行的顺序。ROWS/RANGE frame_specification
:可选项,用于限制窗口的范围。
以下是一个使用 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 FROM employees;
在这个示例中,我们从 employees
表中选择员工 ID、部门 ID、薪水等信息,并使用 LAST_VALUE
函数获取每个部门中最后一个员工的薪水。我们按照员工 ID 对每个部门进行排序,并使用 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
限定窗口范围,以便在每个部门内包含所有员工。