Ich habe eine Tabelle, die so aussieht, Anrufer 'makerar'
cname
wmname
avg
canada
zoro
2.0000000000000000
spanien
luffy
1.00000000000000000000
spanien
usopp
5.0000000000000000
Und ich möchte den größten Durchschnitt für jeden cname auswählen.
SELECT cname, wmname, MAX(avg) FROM makerar GROUP BY cname;
aber ich bekomme einen Fehler,
FEHLER: Die Spalte "makerar.wmname" muss in der GROUP BY-Klausel erscheinen oder in einer Aggregatfunktion verwendet werden
ZEILE 1: SELECT cname, wmname, MAX(avg) FROM makerar GROUP BY cname;
also mache ich das
SELECT cname, wmname, MAX(avg) FROM makerar GROUP BY cname, wmname;
dies wird jedoch nicht die beabsichtigten Ergebnisse liefern, und die falsche Ausgabe unten wird angezeigt.
cname
wmname
max
canada
zoro
2.0000000000000000
spanien
luffy
1.00000000000000000000
spanien
usopp
5.0000000000000000
Die tatsächlichen Ergebnisse sollten wie folgt sein
cname
wmname
max
canada
zoro
2.0000000000000000
spanien
usopp
5.0000000000000000
Wie kann ich dieses Problem beheben?
Hinweis: Diese Tabelle ist eine VIEW, die aus einer früheren Operation erstellt wurde.