sas*_*har 3 sql oracle greatest-n-per-group
我有一个名为departments的表,其中包含一个名为salary的列.现在我想了解每个部门最高两个薪水的所有细节.我们应该如何开发一个产生所需输出的查询?前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
Run Code Online (Sandbox Code Playgroud)
祝你好运!