This question already has answers here:
Get top results for each group (in Oracle)
(5个答案)
2年前关闭。
我有一个称为部门的表,其中包含一个称为薪水的列。现在,我想获取每个部门中最高的两个薪水的所有详细信息。我们应该如何开发产生所需输出的查询? Top-N分析将提供它的整体,但不能为每个部门提供。我想要每个部门的前两名。
祝你好运!
(5个答案)
2年前关闭。
我有一个称为部门的表,其中包含一个称为薪水的列。现在,我想获取每个部门中最高的两个薪水的所有详细信息。我们应该如何开发产生所需输出的查询? Top-N分析将提供它的整体,但不能为每个部门提供。我想要每个部门的前两名。
最佳答案
我知道您在Oracle中要求这样做。我不能帮你。
但是,也许您会看到MSSQL / TSQL中的解决方案会有所帮助吗?
select
d.Salary
,d.Department
from
(
select
r.Salary
,r.Department
,row_number() over(
partition by r.Department
order by r.Salary desc) as RowNumber
from HumanResources as r
) as d
where d.RowNumber < 3
祝你好运!
关于sql - 每个部门的前两个薪水,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6600445/
10-10 15:35