SQL查询查找公司第三高薪水

新手上路,请多包涵

我需要编写一个查询,该查询将返回公司中薪水第三高的员工。

我试图用子查询来完成这个,但无法得到答案。我的尝试如下:

 select Max(salary)
from employees
where Salary not in

 (select Max(salary)
from employees
where Salary not in

(select Max(salary)
from employees));

我的想法是我可以使用 2 个子查询来区分第一高和第二高的薪水。然后我可以简单地选择剩下的 MAX() 工资。这是一个不错的选择,还是有更好的方法来实现这一目标?

原文由 Prateek Chaudhary 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 452
1 个回答

选择 \* 从(

选择工资,DENSE_RANK()

OVER(ORDER BY Salary DESC)r FROM Employee)

其中 r=&n;

找到第三高的薪水集合 n = 3

原文由 Abhishek 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进