Chr*_*son 3 sql oracle plsql ora-00904
我正在撰写查询,以查找收入高于其部门内平均工资的员工.我需要显示该部门的员工ID,工资,部门ID和平均工资.
我有一个几乎可以工作的查询,但它一直给我"ORA-00904:"AVG_SAL":无效的标识符"错误.我这样做是否正确 为什么我收到这个无效的标识符错误?
SELECT employee_id, salary, department_id,
(SELECT ROUND(AVG(salary),2)
FROM employees e_inner
WHERE e_inner.department_id = e.department_id) AS avg_sal
FROM employees e
WHERE salary > avg_sal
ORDER BY avg_sal DESC
Run Code Online (Sandbox Code Playgroud)
Rus*_*llH 13
更高效地使用分析:
select employee_id, salary, department_id, avg_sal
from
(
SELECT employee_id, salary, department_id,
round(avg(salary) over (partition by department_id), 2) avg_sal
from emp
)
where salary > avg_sal
order by avg_sal desc
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
37238 次 |
最近记录: |