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

 我来答
陈举超23
推荐于2016-04-12 · TA获得超过1097个赞
知道小有建树答主
回答量:742
采纳率:100%
帮助的人:694万
展开全部
第一步:取出各个部门第一高工资的员工的empno
select a.empno from emp where a.deptno=b.deptno and a.sal=b.sal
(select deptno,max(sal) sal from emp group by deptno) a;

第二步:取出各个部门第一高工资除了上述的empno,即第二高工资
select deptno,max(sal) from emp where empno not in
)select a.empno from emp where a.deptno=b.deptno and a.sal=b.sal
(select deptno,max(sal) sal from emp group by deptno) )
group by deptno;
更多追问追答
追问
你写的有问题,而且思路也太偏颇,假设emp表中有10个部门,每个部门有1000人,我要查各个部门工资第59位高的难道你要取出58次,而且实际中数据库中的数据一般也允许取出移除,你取出了第一的,那么第二也就变成第一了,所以你的这种方法只是就题论题而已,不是十分科学,并不能存在普遍的方法,希望你能帮我想想怎么用普通方法来做,
你写的有问题,而且思路也太偏颇,假设emp表中有10个部门,每个部门有1000人,我要查各个部门工资第59位高的难道你要取出58次,而且实际中数据库中的数据一般也不允许取出移除,你取出了第一的,那么第二也就变成第一了,所以你的这种方法只是就题论题而已,不是十分科学,并不能存在普遍的方法,希望你能帮我想想怎么用普通方法来做,不过还是谢谢你
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式