select
d.name as Department,
f.name as Employee,
Salary
from department d
inner join
(select * from
(
select *,
dense_rank() over (partition by departmentid order by salary desc) as dense_ranks
from employee e # 第一步:先顺序排序
) b
where dense_ranks <= 3 # 第二步:筛选出来前三名,必须在第一步的基础外进行筛选,否则报错
) f
on d.id = f.departmentid; # 第三步:连接表、输出结果信息