LAST_VALUE 是一个窗口函数,它在 SQL 查询中用于返回每个分组中的最后一个值
假设我们有一个名为 sales 的表,其中包含以下数据:
| sale_id | sale_date | amount |
|---|---|---|
| 1 | 2021-01-01 | 100 |
| 2 | 2021-01-01 | 200 |
| 3 | 2021-01-02 | 300 |
| 4 | 2021-01-02 | 400 |
| 5 | 2021-01-03 | 500 |
如果我们想按 sale_date 分组并获取每个日期的最大 amount,我们可以使用以下查询:
SELECT sale_date, LAST_VALUE(amount) OVER (PARTITION BY sale_date ORDER BY amount DESC) AS max_amount
FROM sales;
这将返回以下结果:
| sale_date | max_amount |
|---|---|
| 2021-01-01 | 200 |
| 2021-01-02 | 400 |
| 2021-01-03 | 500 |
在这个例子中,我们使用 LAST_VALUE 函数来获取每个分组(按 sale_date 分组)中的最后一个值(按 amount 降序排列)。这样,我们可以得到每个日期的最大 amount。