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

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

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

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

排序问题【子查询+自查询】

子查询:where 中做过滤条件,过滤薪资第二名。

自查询:求薪资第二名的薪资。

新用法:用自查讯算排名,直接套用语法 s1<= s2,按s1 分组,对分组后的s2进行去重并统计数量,该数量等于s1的排名(降序)。

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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