举个案例 partition by 与 max结合
时间: 2023-07-05 19:32:30 浏览: 126
好的,这是一个关于 `partition by` 和 `max` 函数的案例:
假设有一个 `orders` 表,它包含以下列:`order_id`、`customer_id`、`order_date` 和 `order_amount`。
现在,我们想要找出每个客户的最大订单金额,以及该订单金额所对应的订单日期。我们可以使用 `partition by` 和 `max` 来实现这个查询。具体的 SQL 语句如下:
```
SELECT
customer_id,
MAX(order_amount) OVER (PARTITION BY customer_id) AS max_order_amount,
order_date
FROM
orders
```
这个查询会按照客户 ID 进行分组,然后在每个分组内计算最大订单金额。`MAX(order_amount) OVER (PARTITION BY customer_id)` 这一行代码就是在计算每个分组内的最大值。`order_date` 列也包含在查询结果中,这样就能得到每个客户的最大订单金额所对应的订单日期了。
注意,这里使用的是窗口函数 `MAX()`,它可以在 `OVER` 子句中使用 `PARTITION BY` 子句来指定分组条件。这样就能在每个分组内进行聚合计算了。
阅读全文