题解 | #不使用排序获取薪水第二多的员工信息#

获取当前薪水第二多的员工的emp_no以及其对应的薪水salary

https://www.nowcoder.com/practice/c1472daba75d4635b7f8540b837cc719

select
    s.emp_no, s.salary, e.last_name, e.first_name
from
    salaries s join employees e
on
    s.emp_no = e.emp_no
where s.salary =
(
    select
        s1.salary
    from
        salaries s1 join salaries s2
    on
        s1.salary <= s2.salary
    group by
        s1.salary                     
    having
        count(distinct s2.salary) = 2
);

使用自联结:s1.salaries <= s2.salaries时,排名第n的薪水会有n个s2.salaries大于s1.salaries,再根据s1.salaries分组后统计个数即可得到排名。

全部评论

相关推荐

昨天 20:01
已编辑
上海大学 Java
钉钉什么垃圾公司,约面鸽人
光年在眼前:不是坏事,感觉钉钉挺逆天的,二面结束还给我留作业,让我使用钉钉和看最新的发布会,然后说感受,我是应该不会去,三面直接拒绝不面了
投递钉钉信息等公司10个岗位
点赞 评论 收藏
分享
10-14 21:00
门头沟学院 Java
吃花椒的狸猫:这个人说的倒是实话,特别是小公司,一个实习生哪里来的那么多要求
点赞 评论 收藏
分享
09-14 17:23
门头沟学院
故事和酒66:所以说副业很重要,程序员干到40岁,再怎么也赚300万了,吃吃利息也够活下去
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务