【SQL】求得工资在部门平均工资之上得员工

这是一篇关于如何使用SQL进行多表查询以找出员工中薪资高于其所在部门平均薪资的教程。内容涉及如何通过SQL语句进行部门薪资平均值计算和员工薪资比较。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

记得在考ocp的051考题,有道题目是说,根据员工表,求得工资在部门平均工资之上得员工,需要进行多表关联查询。

先要按部门求平均工资:

SQL> select deptno,avg(sal) as avg_sal_dpt from emp_copy group by deptno;
DEPTNO AVG_SAL_DPT
------ -----------
    30 1566.666666
    20        2223
    10 2916.666666

SQL> 

然后再关联原表,得出在平均工资之上的员工:

SQL> select t1.empno, t1.ename, t1.deptno, t1.sal, t2.avg_sal_dpt
  2    from emp_copy t1,
  3         (select deptno, avg(sal) as avg_sal_dpt from emp_copy group by deptno) t2
  4   where t1.deptno = t2.deptno
  5     and t1.sal >= t2.avg_sal_dpt;
EMPNO ENAME DEPTNO       SAL AVG_SAL_DPT
----- ---------- ------ --------- -----------
 7499 ALLEN     30   1600.00 1566.666666
 7566 JONES     20   2975.00        2223
 7698 BLAKE      30   2850.00 1566.666666
 7788 SCOTT     20   3000.00        2223
 7839 KING       10   5000.00 291
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值