28.以下列格式显示各部门工资前三名的姓名(采用分析函数的排名而后再将行转换成列)
部门编号 第一名 第二名 第三名
-------- ---------- ---------- ----------
10 KING CLARK MILLER
20 SCOTT FORD JONES
30 BLAKE ALLEN TURNER
oracle分组排行取前三
答案:1 悬赏:50 手机版
解决时间 2021-04-22 17:59
- 提问者网友:我们很暧昧
- 2021-04-22 11:24
最佳答案
- 五星知识达人网友:老鼠爱大米
- 2021-04-22 12:21
select c1.departid 部门,
max(case when
(select count(*) from company c2 where c1.departid=c2.departid and c1.pay<c2.pay)=0
then name
else '' end) 第一名,
max(case when
(select count(*) from company c2 where c1.departid=c2.departid and c1.pay<c2.pay)=1
then name
else '' end) 第二名,
max(case when
(select count(*) from company c2 where c1.departid=c2.departid and c1.pay<c2.pay)=2
then name
else '' end) 第三名
from company c1 group by departid order by departid
/
max(case when
(select count(*) from company c2 where c1.departid=c2.departid and c1.pay<c2.pay)=0
then name
else '' end) 第一名,
max(case when
(select count(*) from company c2 where c1.departid=c2.departid and c1.pay<c2.pay)=1
then name
else '' end) 第二名,
max(case when
(select count(*) from company c2 where c1.departid=c2.departid and c1.pay<c2.pay)=2
then name
else '' end) 第三名
from company c1 group by departid order by departid
/
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯