查询以显示员工姓名,部门编号和不存在部门最高薪水

时间:2019-10-28 04:42:42

标签: sql-server

我需要一个查询来显示员工姓名,部门编号和不显示部门最高薪水

示例

ENAME   SAL    dept no
KING    5000    10
FORD    3000    20
SCOTT   3000    20
BLAKE   2850    30

2 个答案:

答案 0 :(得分:1)

正如评论者所说,当您提供有关尝试过的更多细节时,这将很有帮助。

尽管如此,我认为您正在寻找这样的东西:

;with cte as (
    select ename, sal, [dept no]
        , row_number() over (partition by [dept no] order by sal desc, ename) rn
    from your_table
)
select *
from cte
where rn = 1

请注意,您的示例数据显示[部门编号] 20的SAL为3000。为尝试打破平局,我在ename语句中添加了order by

答案 1 :(得分:0)

此查询正确显示

select ENAME, SAL, [deptno]
from (
    select *
        , DENSE_RANK() over(partition by [deptno] order by sal desc) as Highest_sal
    from Employee
) a
where a.Highest_sal = 1