首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获得部门级别的第二高工资?如果没有第二高工资,则显示第一最高工资?

如何获得部门级别的第二高工资?如果没有第二高工资,则显示第一最高工资?
EN

Stack Overflow用户
提问于 2020-04-02 05:45:17
回答 1查看 58关注 0票数 0

如何查找部门中第二高薪资如果部门中只有一个薪资,则显示第一高薪资。输入为

代码语言:javascript
复制
dept_id salary
10      500      
10      600
10      1000
20      800
20      900
20      200
30      1200

输出

代码语言:javascript
复制
dept_id salary
10      600
20      800
30      1200
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-02 05:47:34

您可以使用窗口函数:

代码语言:javascript
复制
select dept_id, salary
from (
    select
        t.*,
        row_number() over(partition by dept_id order by salary desc) rn,
        count(*) over(partition by dept_id) cnt
    from mytable t
) t
where rn = 2 or (rn = 1 and cnt = 1)

子查询通过降低工资来对具有相同部门的记录进行排名,并计算每个部门有多少名员工。然后,可以使用此信息在外部查询中进行过滤。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60980840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档