对特定部门过去 5 年中薪酬最高的员工进行排名

问题描述 投票:0回答:1

我正在尝试对过去 5 年中每年特定部门收入最高的 3 名员工进行排名。

该表包含以下列: 员工ID 部门_ID 薪水 年

我正在尝试dense_rank,但发现它很混乱

rank dense-rank
1个回答
0
投票

要使用 DENSE_RANK 对每个部门过去 5 年每年收入最高的 3 名员工进行排名,您可以使用以下 SQL 查询。此查询将按 Dept_ID 和 Year 对数据进行分区,然后按 Salary 对每个分区内的行进行降序排序。它将为每一行分配一个密集排名,并仅过滤掉前 3 个排名。

具体操作方法如下:

SELECT Employee_ID, Dept_ID, Salary, Year, DenseRank

来自( 选择 员工ID, 部门_ID, 薪水, 年, DENSE_RANK() OVER (PARTITION BY Dept_ID, Year ORDER BY Salary DESC) AS DenseRank 从 雇员 在哪里 Year >= YEAR(GETDATE()) - 5 -- 过滤过去 5 年 ) AS 排名 在哪里 密集排名 <= 3 ORDER BY Dept_ID, Year, DenseRank;

© www.soinside.com 2019 - 2024. All rights reserved.