mysql 函数 OVER ()
时间: 2023-12-21 21:56:30 浏览: 73
MySQL的OVER()函数是用于在窗口函数中定义分析函数的一种方式。它可以在SELECT语句中指定一个或多个表达式,以便计算每个行的值。OVER()函数允许您访问在同一查询中指定的其他行的值,并且可以帮助您计算复杂的聚合或分析函数。
基本语法:
```
<analytic function> OVER (
[PARTITION BY partition_expression, ... ]
[ORDER BY order_expression [ASC | DESC], ... ]
[frame_clause]
)
```
其中,分析函数是要应用的函数,partition_expression是用于分组数据的表达式,order_expression是用于排序数据的表达式,frame_clause定义了计算函数的窗口。
例如,以下查询将计算每个部门的平均工资和每个部门的每个员工的平均工资,使用OVER()函数:
```
SELECT
department,
AVG(salary) OVER (PARTITION BY department) AS department_avg_salary,
AVG(salary) OVER (PARTITION BY department, employee) AS employee_avg_salary
FROM
employee_salary;
```
在这个例子中,分析函数是AVG(),分组表达式是department和employee,因此查询将计算每个部门和每个员工的平均工资。
阅读全文