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

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

http://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.to_date = '9999-01-01' and s2.to_date = '9999-01-01'   
    where s1.salary <= s2.salary
    group by s1.salary                     
    having count(distinct s2.salary) = 2   
    )
and s.to_date = '9999-01-01'

真大牛思路

全部评论
select s.emp_no,s.salary,e.last_name,e.first_name from employees as e join salaries as s on e.emp_no = s.emp_no where s.salary = ( select s1.salary from salaries s1 cross join salaries s2 on s1.to_date = '9999-01-01' and s2.to_date = '9999-01-01' and s1.salary <= s2.salary group by s1.salary having count(distinct s2.salary) = 2 ) and s.to_date = '9999-01-01'; 笛卡尔积
点赞 回复 分享
发布于 2021-07-02 20:47

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务