使用我有一个表,看起来像这样呼叫者makerar“必须出现在GROUP BY子句或聚合函数
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;
但是这不会给intented结果,以下不正确的输出显示。
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。
相关:http://stackoverflow.com/q/18061285/398670 –