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

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

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

方法一:使用自关联查询

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

方法二:使用子查询

select s.emp_no,s.salary,e.last_name,e.first_name
from employees e
left join  salaries s
on e.emp_no=s.emp_no
where salary=(
    select max(salary)
    from salaries s2
    where salary<(
        select max(salary)
        from salaries s3
    )
)
全部评论

相关推荐

2 收藏 评论
分享
牛客网
牛客企业服务