avg() over()怎么使用
时间: 2023-10-19 09:07:25 浏览: 10
使用 avg() over() 函数需要遵循以下基本语法:
```
AVG(column) OVER (
[PARTITION BY partition_expression, ... ]
[ORDER BY sort_expression [ASC | DESC], ... ]
)
```
其中:
- `column` 表示要计算平均值的列;
- `PARTITION BY` 子句可选,表示按照哪个或哪些列进行分组计算;
- `ORDER BY` 子句可选,表示按照哪个或哪些列进行排序,如果不指定则默认按照当前行的顺序进行计算。
下面是一个示例,假设有一个名为 `sales` 的表,其中包含 `id`、`name`、`date` 和 `amount` 四个列,我们想要计算每个销售员在每个月份的销售额平均值,可以使用如下 SQL 语句:
```
SELECT id, name, date, amount,
AVG(amount) OVER (PARTITION BY name, EXTRACT(MONTH FROM date)
ORDER BY date) AS avg_amount
FROM sales;
```
在这个示例中,我们使用 `PARTITION BY` 子句对 `name` 和 `date` 列进行分组,其中 `EXTRACT(MONTH FROM date)` 表示从 `date` 列中提取月份,然后按照 `date` 列进行排序,最后在每个分组内计算 `amount` 列的平均值,并将结果命名为 `avg_amount`。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)