You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle无需相关子查询和内联查询实现查询薪资高于部门平均薪资的员工

Oracle单查询实现薪资高于部门平均薪资的员工统计

可以通过Oracle分析窗口函数实现需求,不需要使用关联内联查询,也不涉及相关子查询,实现逻辑如下:

核心思路

使用AVG() OVER (PARTITION BY deptno)窗口函数,按部门分区计算每个部门的平均薪资,直接映射到对应部门的每一条员工记录上,无需提前聚合生成临时表再关联。

具体实现

查询符合条件的员工明细

SELECT empno, ename, job, sal, deptno
FROM (
    SELECT e.*, AVG(sal) OVER (PARTITION BY deptno) dept_avg_sal
    FROM emp e
)
WHERE sal > dept_avg_sal
ORDER BY deptno;

直接统计符合条件的员工数量

SELECT COUNT(*) AS high_sal_emp_count
FROM (
    SELECT e.*, AVG(sal) OVER (PARTITION BY deptno) dept_avg_sal
    FROM emp e
)
WHERE sal > dept_avg_sal;

方案优势

  • 没有使用关联内联子查询结构,也不存在相关子查询,符合需求限制
  • 仅扫描一次emp表即可完成计算,相比原关联写法执行效率更高
  • 写法更简洁,易维护

内容的提问来源于stack exchange,提问作者Lara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 00:15:04