Microsoft SQL Server - использование двух вершин для N-го наибольшего значения (псевдоним подзапроса).
Чтобы решить для 2-го высшего:
SELECT TOP 1 q.*
FROM (SELECT TOP 2 column_name FROM table_name ORDER BY column_name DESC) as q
ORDER BY column_name ASC;
Использует TOP дважды, но требует псевдонима с псевдонимом. По сути, внутренний запрос принимает самые большие 2 значения в порядке убывания, затем внешний запрос переворачивается в порядке возрастания, так что 2-й самый высокий теперь находится сверху. Оператор SELECT возвращает эту вершину.
Чтобы найти n-е наибольшее значение, измените значение TOP подзапроса. Например:
SELECT TOP 1 q.*
FROM (SELECT TOP 5 column_name FROM table_name ORDER BY column_name DESC) as q
ORDER BY column_name;
Вернет 5-е наивысшее значение.