无效使用组功能(没有条件)

时间:2016-06-06 08:46:42

标签: mysql mysql-error-1064 sequelpro

表格如下:

| colA | colB | colC | colD |some other cols
-----------------------------
|double|double| int  | int  |some other datatyps

我想按他们选择每个列和组的总和。目前,我没有条件,这是真实的。所以这是我的疑问:

SELECT SUM(colA) as 'cola', SUM(colB)as 'colb', SUM(colC) as 'colc', SUM(colD) as 'cold', SUM(colA - colB)as 'sub'
FROM table_name
GROUP BY cola,colb,colc,cold,sub

然后它会产生错误:无效使用组功能

我发了几篇关于这个错误的帖子,但是他们都有WHERE条件而HAVING解决了这个问题,但我没有条件。什么可能导致此错误消息?

2 个答案:

答案 0 :(得分:0)

您根本不需要GROUP BY条款:

SELECT SUM(t.colA) as 'cola',
       SUM(t.colB)as 'colb',
       SUM(t.colC) as 'colc',
       SUM(t.colD) as 'cold',
       SUM(t.colA - t.colB)as 'sub'
FROM table_name t

GROUP BY子句用于获取每GROUP的计算/汇总/不同值,如ID,因为您需要总和,因此不需要一个group by条款

GROUP BY cola,colb,colc,cold,sub

此行表示每个组都是cola,colb,colc,cold,sub的组合,由于sub是计算列,因此尚未存在!

不要将它包含在您的小组中

如果您想要区分重复项,请使用DISTINCT,或者从组中删除sub列:

GROUP BY t.cola,t.colb,t.colc,t.cold

答案 1 :(得分:0)

您的错误是您在组中包含表中不存在的子。

所以试试这个:

SELECT SUM(colA) as 'cola', SUM(colB)as 'colb', 
SUM(colC) as 'colc', SUM(colD) as 'cold', SUM(colA - colB)as 'sub'
FROM table_name
GROUP BY cola,colb,colc,cold