Поскольку вам нужно сгруппировать предложение без сегмента_иде
Select month, max(price) as MaxPrice
from a
Group By month
, так как вы хотите получать результаты за каждый месяц, а сегмент_ид не агрегируется в исходном операторе выбора.
Если вы хотитедля того, чтобы сегмент_ид с повторением максимальной цены за каждый месяц для каждой строки, необходимо использовать функцию max () в качестве аналитической функции окна без условия группировки по пункту
Select month, segment_id,
max(price) over ( partition by month order by segment_id ) as MaxPrice
from a
Редактировать (из-за вашегонаконец отредактировал желаемые результаты) : вам нужна еще одна аналитическая функция окна row_number()
, как уже упоминал @Gordon:
Select month, segment_id, price From
(
Select a.*,
row_number() over ( partition by month order by price desc ) as Rn
from a
) q
Where rn = 1