题解 | #获取当前薪水第二多的员工的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
)
)