这个语句怎么写?有一个员工表,有4列 :ID,名字,工资,部门!怎样用语句得到每个部门最高工资的前三个人!用oracle语句怎么写
oracle语句
答案:4 悬赏:40 手机版
解决时间 2021-07-24 18:00
- 提问者网友:趣果有间
- 2021-07-24 00:23
最佳答案
- 五星知识达人网友:天凉才是好个秋
- 2021-07-24 00:58
字段多,麻烦
ID是部门,score是工资,就两字段,其他字段没用
方案一
select id, score
from demoScore e1
where
(
select count(id)
from demoScore e2
where e2.id=e1.id and e2.score>=e1.score
) <=3
order by id, score desc;
方案二
select * from
(select id ,score, row_number() over (partition by id order by score desc) rn
from demoScore)
where rn<=3;
全部回答
- 1楼网友:春色三分
- 2021-07-24 02:47
select *from (select row_number over (order by 工资 desc partition by 部门) as row_num ,名字 from table_name)where row_num <= 3
- 2楼网友:一袍清酒付
- 2021-07-24 02:06
应该加个group by 部门 吧
- 3楼网友:夜余生
- 2021-07-24 01:29
select *,表.rownum from 表 where rownum>4 order by 工资 desc
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯