Tengo una tabla que se parece a esta llamada 'makerar'
cname | wmname | avg
--------+-------------+------------------------
canada | zoro | 2.0000000000000000
spain | luffy | 1.00000000000000000000
spain | usopp | 5.0000000000000000
Y quiero seleccionar el promedio máximo para cada cname.
SELECT cname, wmname, MAX(avg) FROM makerar GROUP BY cname;
pero tendré un error
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;
entonces hago esto
SELECT cname, wmname, MAX(avg) FROM makerar GROUP BY cname, wmname;
sin embargo, esto no dará los resultados previstos, y se muestra la salida incorrecta a continuación.
cname | wmname | max
--------+--------+------------------------
canada | zoro | 2.0000000000000000
spain | luffy | 1.00000000000000000000
spain | usopp | 5.0000000000000000
Los resultados reales deben ser
cname | wmname | max
--------+--------+------------------------
canada | zoro | 2.0000000000000000
spain | usopp | 5.0000000000000000
¿Cómo puedo solucionar este problema?
Nota: Esta tabla es una VISTA creada a partir de una operación anterior.
wmname="usopp"
espera y no por ejemplo wmname="luffy"
?