题解 | #SQL 212获取当前薪水第二多的员工信息

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

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

select e.emp_no,s.salary,e.last_name,e.first_name
from salaries s
left join 
employees e
on s.emp_no=e.emp_no
where salary = (
    select max(salary)
    from salaries
    where salary <>(select max(salary) from salaries)
)

利用嵌套max函数求解

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

利用自连接配合聚合函数count得到排名然后筛选

全部评论

相关推荐

今天 14:10
门头沟学院 Java
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-24 13:39
在记录秋招的大魔王很...:别被忽悠了,我做了多年销售。我可以告诉你,这就是忽悠你的,销售一定要看底薪也要看提成两者不可缺一。提成是有业绩的时候才拿的到的,谁能保证一直有单状态都好。销售有时候很讲究运气的。底薪是你这个人这个岗位日常工作体现的价值。别小看底薪,你看那些跳槽去做经理主管的,底薪底一些,人家愿意去吗?所以那些说销售靠提成的纯属忽悠,除非他们的业务很容易成单。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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