我在名为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";
我在这里做错了什么?
答案 0 :(得分:2)
正确的语法是:
SELECT SUM(TotalRate) AS ItemRateSum, TotalFeet
FROM ItemRates
GROUP BY TotalFeet;
也就是说,TotalFeet
不是聚合函数的参数,因此它需要位于GROUP BY
。
答案 1 :(得分:0)
所有选定且不属于聚合函数的列必须包含在group by子句
中