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

获取当前薪水第二多的员工的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(s1.salary) = 2
);

/*
-- 解释
-- 为什么 having count(s1.salary) =2 -- (分组计数之后的数量就是对应的名次)
-- 执行下列sql拿到数据如下所示:
select s1.salary,s2.salary
from salaries s1 join salaries s2
on s1.salary <= s2.salary
group by s1.salary,s2.salary
order by s1.salary desc;
s1 ,s2
88958,88958
74057,74057
74057,88958
72527,72527
72527,74057
72527,88958
43311,43311
43311,72527
43311,74057
43311,88958
通过对s1 取having count(s1) 可得具体第几大数
*/
全部评论

相关推荐

不愿透露姓名的神秘牛友
今天 10:39
点赞 评论 收藏
分享
05-12 17:00
门头沟学院 Java
king122:你的项目描述至少要分点呀,要实习的话,你的描述可以使用什么技术,实现了什么难点,达成了哪些数字指标,这个数字指标尽量是真实的,这样面试应该会多很多,就这样自己包装一下,包装不好可以找我,我有几个大厂最近做过的实习项目也可以包装一下
点赞 评论 收藏
分享
06-08 22:25
门头沟学院 Java
从零开始的转码生活:这hr不会打开手机不分青红皂白给所有人群发这句话,过一会再给所有人再发一遍,这肯定会有重复的,不管,再过一会再发一遍
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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