Решение для поиска значения Nth Maximum определенного столбца в SQL Server:
Таблица сотрудников:
Таблица продаж:
Данные таблицы сотрудников:
==========
Id name
=========
6 ARSHAD M
7 Manu
8 Shaji
Данные таблицы продаж:
=================
id emp_id amount
=================
1 6 500
2 7 100
3 8 100
4 6 150
5 7 130
6 7 130
7 7 330
Запрос, чтобы узнать подробности о работнике, у которого самая высокая продажа / N у самого высокого продавца
select * from (select E.Id,E.name,SUM(S.amount) AS 'total_amount' from employee E INNER JOIN Sale S on E.Id=S.emp_id group by S.emp_id,E.Id,E.name ) AS T1 WHERE(0)=( select COUNT(DISTINCT(total_amount)) from(select E.Id,E.name,SUM(S.amount) AS 'total_amount' from employee E INNER JOIN Sale S on E.Id=S.emp_id group by S.emp_id,E.Id,E.name )AS T2 WHERE(T1.total_amount<T2.total_amount) );
В ГДЕ (0) заменить 0 на n-1
Результат:
========================
id name total_amount
========================
7 Manu 690