Запрос на поиск ПЕРВОГО И ВТОРОГО наибольшее значение из группы

у меня есть такой запрос:

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.)

Любая помощь приветствуется, спасибо.

7
задан Paul Sasik 14 December 2010 в 15:20
поделиться