select emp_no,salary
from 
(
select *,dense_rank() over(order by salary desc) rk 
from salaries
) a 
where rk = 2

没什么好说的,可以扩展一下题目,比如:

emp_no salary

1001 200

1002 100

1001 90

现在要获取每位员工能够获取第二多的薪水数值

select emp_no,salary
from 
(
select *,dense_rank() over(partition by emp_no order by salary desc) rk 
from salaries
) a 
where rk = if(rk=2,2,1)