У мене є таблиця, яка виглядає як "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
Як я можу вирішити цю проблему?
Примітка. Ця таблиця - VIEW, створена за допомогою попередньої операції.
wmname="usopp"
очікується, а не для прикладу wmname="luffy"
?