(2) Последний месяц можно силой вывести.
Сделать две группировки, в одной отбор будет все, кроме одной, во второй - равно этой одной.
Количество группировок - номер строки посмотри.
Я если честно, немного растерянности, это же вроде бы обычная задача ? Как обычно такие вещи решают ?
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший