Mam stolik, który wygląda jak ten wywołujący „makerar”
cname | wmname | avg
--------+-------------+------------------------
canada | zoro | 2.0000000000000000
spain | luffy | 1.00000000000000000000
spain | usopp | 5.0000000000000000
I chcę wybrać maksymalną średnią dla każdej nazwy.
SELECT cname, wmname, MAX(avg) FROM makerar GROUP BY cname;
ale dostanę błąd,
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;
więc to robię
SELECT cname, wmname, MAX(avg) FROM makerar GROUP BY cname, wmname;
nie przyniesie to jednak zamierzonych rezultatów i pokazano niepoprawne dane wyjściowe poniżej.
cname | wmname | max
--------+--------+------------------------
canada | zoro | 2.0000000000000000
spain | luffy | 1.00000000000000000000
spain | usopp | 5.0000000000000000
Rzeczywiste wyniki powinny być
cname | wmname | max
--------+--------+------------------------
canada | zoro | 2.0000000000000000
spain | usopp | 5.0000000000000000
Jak mogę rozwiązać ten problem?
Uwaga: Ta tabela to WIDOK utworzony z poprzedniej operacji.
wmname="usopp"
oczekiwany, a nie na przykład wmname="luffy"
?