温馨提示×

sql last_value函数的语法结构

sql
小樊
82
2024-09-09 05:46:19
栏目: 云计算

LAST_VALUE() 是一个 SQL 窗口函数,用于返回指定窗口中的最后一个值

LAST_VALUE(expression) OVER (
    [PARTITION BY partition_expression1, partition_expression2, ...]
    ORDER BY order_expression1, order_expression2, ...
    [ROWS/RANGE frame_specification]
)
  • expression:要计算最后一个值的列或表达式。
  • PARTITION BY(可选):将结果集划分为多个分区,每个分区都会应用 LAST_VALUE() 函数。如果省略此子句,则整个结果集被视为一个分区。
  • ORDER BY:确定在窗口中的行顺序,这对于确定“最后一个值”至关重要。
  • ROWS/RANGE(可选):定义窗口的范围。默认情况下,窗口范围包括从当前行到窗口末尾的所有行。你可以使用 ROWSRANGE 子句自定义窗口范围。

以下是一个使用 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;

在这个示例中,我们查询员工表,并使用 LAST_VALUE() 函数获取每个部门的最后一个员工的薪水。我们按照 department_id 对结果集进行分区,并按照 employee_id 对每个分区内的行进行排序。我们还指定了窗口范围,使其包括从当前行到窗口末尾的所有行。

0