sql

last_value在聚合查询中的用法

小樊
82
2024-09-09 05:45:09
栏目: 编程语言

last_value 是一个窗口函数,它用于获取窗口内某列的最后一个值

以下是 last_value 函数的基本语法:

LAST_VALUE(column) OVER (
    [PARTITION BY partition_column1, partition_column2, ...]
    ORDER BY order_column1, order_column2, ...
    [ROWS/RANGE frame_clause]
)

以下是一个使用 last_value 函数的示例:

WITH sales_data AS (
    SELECT
        employee_id,
        sale_date,
        sale_amount
    FROM
        sales
)
SELECT
    employee_id,
    sale_date,
    sale_amount,
    LAST_VALUE(sale_amount) OVER (
        PARTITION BY employee_id
        ORDER BY sale_date
        ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
    ) as last_sale_amount
FROM
    sales_data;

在这个示例中,我们首先创建了一个名为 sales_data 的临时表,包含 employee_idsale_datesale_amount 列。然后,我们使用 LAST_VALUE 函数,按照 employee_id 对数据进行分区,并按照 sale_date 对每个分区内的数据进行排序。ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING 子句表示窗口范围包括分区内的所有行。最后,我们选择 employee_idsale_datesale_amount 和计算出的 last_sale_amount 列。

0
看了该问题的人还看了