Eu tenho uma tabela que se parece com esse chamador 'makerar'
cname | wmname | avg
--------+-------------+------------------------
canada | zoro | 2.0000000000000000
spain | luffy | 1.00000000000000000000
spain | usopp | 5.0000000000000000
E eu quero selecionar a média máxima para cada cname.
SELECT cname, wmname, MAX(avg) FROM makerar GROUP BY cname;
mas vou receber um erro,
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;
então eu faço isso
SELECT cname, wmname, MAX(avg) FROM makerar GROUP BY cname, wmname;
no entanto, isso não fornecerá os resultados pretendidos e a saída incorreta abaixo é mostrada.
cname | wmname | max
--------+--------+------------------------
canada | zoro | 2.0000000000000000
spain | luffy | 1.00000000000000000000
spain | usopp | 5.0000000000000000
Os resultados reais devem ser
cname | wmname | max
--------+--------+------------------------
canada | zoro | 2.0000000000000000
spain | usopp | 5.0000000000000000
Como posso resolver esse problema?
Nota: Esta tabela é uma VIEW criada a partir de uma operação anterior.
wmname="usopp"
esperado e não por exemplo wmname="luffy"
?