oracle工资第二高怎么查询,求各部门第二高的工资

本文详细介绍了如何使用Oracle SQL查询每个部门中工资第二高的员工信息。首先,通过子查询获取各部门最高工资的员工,然后排除这些员工以找出第二高工资的员工。同时,还提供了一个查询,展示各部门工资最高员工的详细信息。此外,讨论了如何查询高于员工所在部门平均工资的员工,涉及相关子查询的使用技巧。
摘要由CSDN通过智能技术生成

Oracle 查询 EMP 表中各部门工资第二高的信息,注意是各部门,不能指定单个部门

第一步:取出各部门第一高工资的员工的empno

select b.empno from (select deptno,max(sal) sal from emp group by deptno ) a, emp b

where a.deptno=b.deptno and a.sal=b.sal

;

/*

EMPNO

----------

7698

7839

7902

*/

第二步:取出各部门第一高工资除了上述的empno,即第二高工资

select deptno,max(sal) second_highest from emp

where empno not in(

select b.empno from (select deptno,max(sal) sal from emp group by deptno ) a, emp b

where a.deptno=b.deptno and a.sal=b.sal

)

group by deptno

order by deptno

;

/*

DEPTNO SECOND_HIGHEST

---------- --------------

10 2450

20 2975

30 1600

*/

附录:各部门的第一高工资以及empno

select b.empno, a.deptno, a.sal from (select deptno,max(sal) sal from emp group by deptno ) a, emp b

where a.deptno=b.deptno and a.sal=b.sal

order by a.deptno

;

/*

EMPNO DEPTNO SAL

---------- ---------- ----------

7839 10 5000

7902 20 3000

7698 30 2850

*/

Oracle数据库中 查询高于自己部门平均工资的员工信息 用相关子查询怎么做啊?

已经有 select a.* from emp a where sal >(select avg(sal) from emp where deptno=a.deptno and__)

and后面是应该加group by deptno 吗?

答案:不应该加group by deptno。而应该加 deptno=&deptno。该语句会提示用户输入自己的部门编号,之后会进行检索操作返回结果。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值