Я пытался получить n-ую самую высокую зарплату из таблицы, используя метод subquery и dens_rank. ниже приведены результаты для каждого метода.
Метод подзапроса:
select Top 1 Salary
from (
select top 7 Salary from Employee order by Salary desc
) as Result
order by Salary
Этот метод возвращает седьмую наивысшую зарплату как: 3000
Метод Dense_Rank:
select *
from (
select Salary, DENSE_RANK() Over(order by Salary desc) DRank
from Employee
) as Result
where DRank=7
Этот метод возвращает седьмую наивысшую зарплату как: 1000
Исходные данные таблицы:
Кто-нибудь может дать мне представление о том, какой метод является правильным и почему?