题解 | #SQL18 获取当前薪水第二多的员工的emp_no以及其对应的薪水salary#
获取当前薪水第二多的员工的emp_no以及其对应的薪水salary
http://www.nowcoder.com/practice/c1472daba75d4635b7f8540b837cc719
思路: 1.:先找出最高的薪水值(最高的薪水):select max(salary) from salaries, 2: 然后找出不满足最大薪水值的其它数据,从不满足最大薪水值的其它数据中找到最大的薪水值(第二大薪水的值):select distinct max(salary) from salaries where salary not in (select max(salary) from salaries)), 3.:然后找出满足第二薪水值的人的数据:salary = (select salary from salaries where salary = (select distinct max(salary) from salaries where salary not in (select max(salary) from salaries)));
最后的完整SQL语句: select employees.emp_no,salary,last_name,first_name from employees,salaries where employees.emp_no = salaries.emp_no and salary = (select salary from salaries where salary = (select distinct max(salary) from salaries where salary not in (select max(salary) from salaries)));
上述SQL语句同时也能满足 有多个最大,第二大薪水的情况!!!