2014-01-07 40 views
0

我想查询保留几个字段作为disctict的表上。所以,我在场上使用分组来区分。 BUt HANA系统会抛出一个错误:Not A Group By expression不是按表达式分组:错误

select "REFID", "ORGID_WE", "ARTIKLE", "ORGID", "HELLER", "WERT", "BZBAS_AW" 
from "SYSTEM"."SOFT" 
GROUP BY "REFID", "ORGID_WE", "ARTIKLE", "ORGID", "HELLER" ; 

对我来说这看起来不错。有任何想法吗??使用聚合函数

+0

删除了MySQL的标签,因为MySQL不产生这个错误。我删除了SQL Server标记,因为它也不是关于SQL Server的。 –

+0

这基本上是SAP HANA。但我认为任何具有关于SQL的经验知识的人可能会提供一些想法:) –

+0

你错过了什么关于错误消息?你在'select'列表中有'WERT'和'BSBAS_AW'列,但它们不是聚合函数('min()','max()'等),它们不在'group '。 –

回答

1

尝试:

select "REFID", "ORGID_WE", "ARTIKLE", "ORGID", "HELLER", sum("WERT"), sum("BZBAS_AW") 
from "SYSTEM"."SOFT" 
GROUP BY "REFID", "ORGID_WE", "ARTIKLE", "ORGID", "HELLER" ; 
+0

这很有效。请问你能告诉我为什么你在那里使用金额只是为了让自己清楚我的理解! –

+1

'sum()'只是任意的。你也可以使用任何聚合函数。当你用'“REFID”,“ORGID_WE”,“ARTIKLE”,“ORGID”,“HELLER”进行分组时,结果集中的组合是唯一的。这可能会导致需要汇总的“WERT”和“BZBAS_AW”的重复。你可以选择总结他们,平均他们,采取最大或最小值,数它们。在这里看到更详细的解释:http://en.wikipedia.org/wiki/Aggregate_function –

+0

非常感谢。 Superlike! –