у меня есть такой запрос:
SELECT
DATEPART(year,some_date),
DATEPART(month,some_date),
MAX(some_value) max_value
FROM
some_table
GROUP BY
DATEPART(year,some_date),
DATEPART(month,some_date)
Это возвращает таблицу с: год, месяц, наибольшее значение за месяц .
Я хотел бы изменить запрос, чтобы получить: год, месяц, наибольшее значение за месяц, второе наибольшее значение за месяц в каждой строке.
Мне кажется, что известные решения типа «ТОП 2», «НЕ В ТОПе 1» или подзапрос здесь не будет работать.
(Чтобы быть точным - я использую SQL Server 2008.)
Любая помощь приветствуется, спасибо.