Как сказал комментатор, полезно, когда вы предоставляете более подробную информацию о том, что вы пробовали.
Тем не менее, я думаю, что вы ищете что-то вроде этого:
;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
Обратите внимание, что ваши данные в качестве примера показывают ту же SAL 3000 для [dept no] 20. До пытаясь разорвать связи, я добавил ename
в оператор order by
.