小编Arj*_*jee的帖子

休眠问题:必须出现在GROUP BY子句中或在聚合函数中使用

我要运行的查询:

SELECT date_trunc('month',UA.activity_date),SUM(UA.points) FROM user_activity UA
WHERE UA.activity_date > '01/01/2014' AND UA.activity_date < '12/31/2014' 
GROUP BY date_trunc('month',UA.activity_date)
ORDER BY date_trunc('month',UA.activity_date)
Run Code Online (Sandbox Code Playgroud)

预期成绩:

03/01/2014 00:00:00 66.04000000000000000
05/01/2014 00:00:00 13.50000000000000000
07/01/2014 00:00:00 27.00000000000000000
08/01/2014 00:00:00 26.00000000000000000
09/01/2014 00:00:00 13.50000000000000000
Run Code Online (Sandbox Code Playgroud)

当我使用Hibernate运行该查询时,出现此错误:

ERROR: column "useractivi0_.activity_date" must appear in the GROUP BY clause or be used in an aggregate function
Run Code Online (Sandbox Code Playgroud)

为了解决这个问题,我将上面的查询修改为:

SELECT date_trunc('month',UA.activity_date),SUM(UA.points) FROM user_activity UA
WHERE UA.activity_date > '01/01/2014' AND UA.activity_date < '12/31/2014' 
GROUP BY date_trunc('month',UA.activity_date),***UA.activity_date***
ORDER BY date_trunc('month',UA.activity_date)
Run Code Online (Sandbox Code Playgroud)

但是,结果是错误的:

03/01/2014 00:00:00 25.40000000000000200
03/01/2014 00:00:00 …
Run Code Online (Sandbox Code Playgroud)

java sql database postgresql hibernate

5
推荐指数
1
解决办法
1346
查看次数

标签 统计

database ×1

hibernate ×1

java ×1

postgresql ×1

sql ×1