问:Oracle的EMP表,查询每个部门工资前三名的员工信息,如何写??
解答:(通用sql)
Oracle查询:(利用分区功能)
解答:(通用sql)
select deptno, ename, sal
from emp e1
where
(
select count(1)
from emp e2
where e2.deptno=e1.deptno and e2.sal>=e1.sal
) <=3 /*这里的数值表示你想取前几名*/
order by deptno, sal desc;
Oracle查询:(利用分区功能)
select * from
(select deptno,ename,sal,row_number() over (partition by deptno
order by sal desc) rn
from emp)
where rn<3;
本文提供两种Oracle SQL查询方法来获取每个部门工资排名前三的员工信息。一种是使用子查询计数方法,另一种则利用了Oracle特有的分区功能,通过row_number()函数实现更简洁高效的查询。
5073

被折叠的 条评论
为什么被折叠?



