This question already has answers here:
Get top results for each group (in Oracle)

(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