Ho un tavolo che assomiglia a questo creatore "makerar"
cname | wmname | avg
--------+-------------+------------------------
canada | zoro | 2.0000000000000000
spain | luffy | 1.00000000000000000000
spain | usopp | 5.0000000000000000
E voglio selezionare la media massima per ogni cname.
SELECT cname, wmname, MAX(avg) FROM makerar GROUP BY cname;
ma avrò un errore,
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;
quindi faccio questo
SELECT cname, wmname, MAX(avg) FROM makerar GROUP BY cname, wmname;
tuttavia ciò non darà i risultati intenzionali e verrà mostrato l'output errato di seguito.
cname | wmname | max
--------+--------+------------------------
canada | zoro | 2.0000000000000000
spain | luffy | 1.00000000000000000000
spain | usopp | 5.0000000000000000
I risultati effettivi dovrebbero essere
cname | wmname | max
--------+--------+------------------------
canada | zoro | 2.0000000000000000
spain | usopp | 5.0000000000000000
Come posso risolvere il problema?
Nota: questa tabella è una VISTA creata da un'operazione precedente.
wmname="usopp"
previsto e non per esempio wmname="luffy"
?