mysql - mysql中Window函数实现遇到语法错误
问题描述
我正在尝试执行以下窗口函数的实现
SELECT employee_no, employee_name, department_no,
round(avg(salary) OVER(PARTITION BY e.department_no),2) AS dept_avg_salary,
salary as salary_of_employee
FROM employee e
WHERE e.department_no is not null and salary > (select avg(salary)
from employee e2
where e2.department_no = e.department_no
groupby e2.department_no
);
遇到错误 1064。
请帮忙!
解决方案
由于 Gordon 已更正语法错误,因此我将更正子查询:
select avg(e2.salary)
from employee e2
where e2.department_no = e.department_no
您已经将子查询与外部查询相关联,因此您不需要使用GROUP BY
.
所以,最后where
的条款sub-query
将是:
WHERE e.salary > (select avg(e2.salary)
from employee e2
where e2.department_no = e.department_no
);
推荐阅读
- javascript - 不能在three.js中播放透明webm?
- zurb-foundation - 切换菜单 - 动画高度
- php - 全新安装中未找到类“类‘表单’”
- sql - Qliksense 中的 SQL 逻辑
- javascript - async await 返回一个 Promise 而不是一个值
- shieldui - FieldType.Number 将编辑值限制为 100,任何超过 100 的值都会自动更改为 100
- python-2.7 - 无法为操作“Variable_4/Adam_1”分配设备
- git - 从 git for windows bash 的 CLI 中清除所有 git 凭据
- javascript - 修改值 - 通过引用传递
- javascript - React 钩子 useState 在上下文提供者中设置多个状态