我需要一个查询来显示员工姓名,部门编号和不显示部门最高薪水
示例
ENAME SAL dept no
KING 5000 10
FORD 3000 20
SCOTT 3000 20
BLAKE 2850 30
答案 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