max over partition by举一个应用的例子
时间: 2023-07-01 12:12:08 浏览: 170
`MAX over partition by` 是 SQL 中的一种窗口函数,可以在每个分组内找到指定列的最大值。举一个例子,假设我们有一个销售表格,其中包含了每个月每个销售员的销售额:
| Salesperson | Month | Sales |
|-------------|-------|-------|
| John | Jan | 500 |
| John | Feb | 600 |
| John | Mar | 700 |
| Mary | Jan | 400 |
| Mary | Feb | 300 |
| Mary | Mar | 800 |
如果我们想要找到每个销售员的最高销售额,可以使用 `MAX over partition by` 函数。具体地,我们可以这样写 SQL 语句:
```
SELECT Salesperson, MAX(Sales) OVER (PARTITION BY Salesperson) as MaxSales
FROM SalesTable
```
这个语句将会返回以下结果:
| Salesperson | MaxSales |
|-------------|----------|
| John | 700 |
| John | 700 |
| John | 700 |
| Mary | 800 |
| Mary | 800 |
| Mary | 800 |
其中,`MAX(Sales) OVER (PARTITION BY Salesperson)` 表示在每个 `Salesperson` 分组内,找到 `Sales` 列的最大值,并在结果中添加一个新的 `MaxSales` 列。这里我们发现,John 和 Mary 的最高销售额分别是 700 和 800。
阅读全文