이 발신자 '메이커'처럼 보이는 테이블이 있습니다.
cname | wmname | avg
--------+-------------+------------------------
canada | zoro | 2.0000000000000000
spain | luffy | 1.00000000000000000000
spain | usopp | 5.0000000000000000
그리고 각 cname에 대한 최대 평균을 선택하고 싶습니다.
SELECT cname, wmname, MAX(avg) FROM makerar GROUP BY cname;
하지만 오류가 발생합니다.
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;
그래서 나는 이것을한다
SELECT cname, wmname, MAX(avg) FROM makerar GROUP BY cname, wmname;
그러나 이것은 의도 한 결과를 제공하지 않으며 아래의 잘못된 출력이 표시됩니다.
cname | wmname | max
--------+--------+------------------------
canada | zoro | 2.0000000000000000
spain | luffy | 1.00000000000000000000
spain | usopp | 5.0000000000000000
실제 결과는
cname | wmname | max
--------+--------+------------------------
canada | zoro | 2.0000000000000000
spain | usopp | 5.0000000000000000
이 문제를 해결하려면 어떻게해야합니까?
참고 :이 테이블은 이전 작업에서 생성 된 VIEW입니다.
wmname="usopp"
예를 들어 왜 그렇지 wmname="luffy"
않습니까?