表达式不是聚合或GROUP BY列异常

时间:2017-01-09 21:43:10

标签: java sql ms-access

我在名为MS-Access的{​​{1}}数据库中有一个表,其中包含ItemRates列,此数据库与我的ItemID, ItemName, TotalFeet, RatePerItem, TotalRate应用程序相关联。

当我运行以下查询时

java

我收到以下异常

String sql = "SELECT SUM(TotalRate) AS ItemRateSum, TotalFeet FROM ItemRates";

我在net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.7 expression not in aggregate or GROUP BY columns: PUBLIC.ITEMRATES.TOTALFEET 上看到了与此异常相关的其他问题,并且一个接受的答案建议在查询末尾添加StackOverflow子句。我添加了GroupBy子句

GroupBy

我得到了几乎相同的例外(结肠后两个例外之间略有不同)

String sql = "SELECT SUM(TotalRate) AS ItemRateSum, TotalFeet FROM 
ItemRates GROUPBY ItemName";

我在这里做错了什么?

2 个答案:

答案 0 :(得分:2)

正确的语法是:

SELECT SUM(TotalRate) AS ItemRateSum, TotalFeet
FROM ItemRates
GROUP BY TotalFeet;

也就是说,TotalFeet不是聚合函数的参数,因此它需要位于GROUP BY

答案 1 :(得分:0)

所有选定且不属于聚合函数的列必须包含在group by子句