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

获取当前薪水第二多的员工的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分组后统计个数即可得到排名。

全部评论

相关推荐

07-07 14:30
复旦大学 Java
遇到这种人我也不知道说啥了
正义执行官:人家能回你就不错了,自己不主动去问,等着天上掉馅饼,想啥呢哥们
点赞 评论 收藏
分享
07-02 13:50
闽江学院 Java
点赞 评论 收藏
分享
牛客刘北:如果暑期实习是27届的话,你要晚一年才会毕业,企业为什么会等你呢?要搞清时间逻辑呀!27届现在实习只能是在暑假实习,这是日常实习,不是暑期实习。所以多去投日常实习吧,暑期实习肯定不会要你的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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