Tôi có một bảng trông giống như người gọi này 'Makerar'
cname | wmname | avg
--------+-------------+------------------------
canada | zoro | 2.0000000000000000
spain | luffy | 1.00000000000000000000
spain | usopp | 5.0000000000000000
Và tôi muốn chọn avg tối đa cho mỗi cname.
SELECT cname, wmname, MAX(avg) FROM makerar GROUP BY cname;
nhưng tôi sẽ gặp lỗi
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;
vì vậy tôi làm điều này
SELECT cname, wmname, MAX(avg) FROM makerar GROUP BY cname, wmname;
tuy nhiên điều này sẽ không cho kết quả có ý định và đầu ra không chính xác bên dưới được hiển thị.
cname | wmname | max
--------+--------+------------------------
canada | zoro | 2.0000000000000000
spain | luffy | 1.00000000000000000000
spain | usopp | 5.0000000000000000
Kết quả thực tế phải là
cname | wmname | max
--------+--------+------------------------
canada | zoro | 2.0000000000000000
spain | usopp | 5.0000000000000000
Làm thế nào tôi có thể sửa chữa vấn đề này?
Lưu ý: Bảng này là một XEM được tạo từ một hoạt động trước đó.
wmname="usopp"
mong đợi và không ví dụ wmname="luffy"
?