Mysql_窗口函数_OVER()的简单使用
一.OVER()
描述
OVER()的意思就是所有的数据都在窗口中
实例
-
OVER() 意思是所有的数据都在窗口中
# 计算所有员工的平均工资 SELECT *, avg(salary) OVER () FROM employee;
-
OVER()用于将当前行与一个聚合值进行比较
# 计算员工与平均薪水之差 SELECT *, salary - avg(salary) OVER () as diffent FROM employee;
-
OVER()和COUNT()组合
# 计算所有部门数量 SELECT *, count(id) OVER () FROM department;
-
一句SQL中使用两个窗口函数
# 在purchase表基础上,添加平均价格和采购总金额两列 SELECT *, avg(price) OVER (), sum(price) OVER () FROM purchase;
-
窗口函数在WHERE`子句后执行
# 查询部门id为1,2,3三个部门员工的姓名,薪水,和这三个部门员工的平均薪资 SELECT first_name, last_name, salary, avg(salary) OVER () FROM employee WHERE department_id IN (1, 2, 3) ORDER BY department_id;
-
在过滤条件中不能使用OVER()
# 查询所有员工中,薪资高于平均薪资的员工 SELECT *, AVG(salary) OVER () FROM employee WHERE salary > AVG(salary) OVER ();
下一篇:
mysql将某一列的值统一更改