Задача: Вывести значения с группировкой по group, где price должна быть максимальной. В добавок этот price может быть максимальным у group одинаковой.
Прошу помочь, т.к. 10 часов поиска по всему интернету не привел ни к чему хорошему. База данных - clickhouse, но это не имеет наверно разницы.
Пример:
id | group | price
--------------------
1 | group1 | 1000
2 | group1 | 1000
3 | group3 | 500
4 | group2 | 600
5 | group2 | 400
Нужно:
id | group | price
--------------------
1 | group1 | 1000
3 | group3 | 500
4 | group2 | 600
Был вариант:
SELECT t1.* FROM table t1, (SELECT group, MAX(price) price FROM table GROUP BY group) t2
WHERE t1.group=t2.group AND t1.price=t2.price
(P.S. подсветку синтаксиса sql не нашел)
Но в моем случае у group1 2 максимальных значения, и выводятся оба. Мне нужна жесткая группировка по group, причем какой id попадет в выборку (1 или 2) разницы не имеет.
Заранее спасибо.