群组功能使用无效(无条件)
Invalid use of group function (with no conditions)
table 看起来像这样:
| colA | colB | colC | colD |some other cols
-----------------------------
|double|double| int | int |some other datatyps
我想select每列的总和并按它们分组。目前我没有条件必须是真实的。所以这是我的查询:
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 解决了这个问题,但我没有条件。任何可能导致此错误消息的想法?
你根本不需要 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
A 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
你的错是你在分组中包含了 table 中不存在的子项。
所以试试这个:
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
table 看起来像这样:
| colA | colB | colC | colD |some other cols
-----------------------------
|double|double| int | int |some other datatyps
我想select每列的总和并按它们分组。目前我没有条件必须是真实的。所以这是我的查询:
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 解决了这个问题,但我没有条件。任何可能导致此错误消息的想法?
你根本不需要 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
A 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
你的错是你在分组中包含了 table 中不存在的子项。
所以试试这个:
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