У меня есть следующие таблицы: https://pastebin.com/Js0Sm69S (CREATE
и INSERT
отчеты).
Я хотел бы найти третью по величине зарплату в каждом отделе, если есть такое.
Мне удалось этого добиться: введите описание изображения здесь Используя следующий запрос:
SELECT *,
DENSE_RANK() OVER
(PARTITION BY DepartmentId ORDER BY Salary DESC) AS DRank
FROM Employees
Я не уверен, что DENSE_RANK()
- лучшая функция ранжирования для использования здесь. Может быть, нет, потому что WHERE DRank=3
может возвращать более одного результата (но мы можем сказать TOP(1)
). Что Вы думаете об этом? Как теперь отобразить третью по величине зарплату в каждом отделе, если она есть?