У меня есть таблица, которая выглядит как этот вызывающий "makerar"
cname | wmname | avg
--------+-------------+------------------------
canada | zoro | 2.0000000000000000
spain | luffy | 1.00000000000000000000
spain | usopp | 5.0000000000000000
И я хочу выбрать максимальное среднее значение для каждого имени.
SELECT cname, wmname, MAX(avg) FROM makerar GROUP BY cname;
но я получу ошибку,
ERROR: column "makerar.wmname" must appear in the GROUP BY clause or be used in an aggregate function
LINE 1: SELECT cname, wmname, MAX(avg) FROM makerar GROUP BY cname;
так что я делаю это
SELECT cname, wmname, MAX(avg) FROM makerar GROUP BY cname, wmname;
однако это не даст ожидаемых результатов, и ниже показан неправильный вывод.
cname | wmname | max
--------+--------+------------------------
canada | zoro | 2.0000000000000000
spain | luffy | 1.00000000000000000000
spain | usopp | 5.0000000000000000
Фактические результаты должны быть
cname | wmname | max
--------+--------+------------------------
canada | zoro | 2.0000000000000000
spain | usopp | 5.0000000000000000
Как я могу решить эту проблему?
Примечание. Эта таблица представляет собой ПРОСМОТР, созданный в результате предыдущей операции.
wmname="usopp"
ожидается, а не например wmname="luffy"
?