HQL order by子句不起作用

时间:2017-06-27 08:45:03

标签: hibernate jpa hql

select r,avg(ur.score) 
from UserResource ur 
join Resource r on ur.resourceId=r.id 
group by ur.resourceId 
order by avg(ur.score) desc

上面的查询应该以{{1​​}}顺序返回结果,但实际上我得到的是avg(ur.score)顺序。如果我将查询更改为仅选择r.id的下方,则结果将按avg(ur.score)顺序排列。

avg(ur.score)

为什么第一个查询中的select avg(ur.score) from UserResource ur join Resource r on ur.resourceId=r.id group by ur.resourceId order by avg(ur.score) desc 子句不起作用以及如何解决它?

1 个答案:

答案 0 :(得分:0)

您的查询似乎有问题,而不是排序问题。

您正尝试按不属于select语句的列进行分组。 作为ur.resourceId=r.id,您可以尝试以下内容:

select r.id,avg(ur.score) 
from UserResource ur 
join Resource r on ur.resourceId=r.id 
group by r.id 
order by avg(ur.score) desc