我有以下类:
class User { hasMany = [ratings: rating] } class Item { hasMany = [ratings: rating] } class rating { belongsTo = [user: User,item: Item] }
我想计算在一个项目上评分的不同用户.
以下内容不起作用:
select count(distinct(r.user)) from rating as r where r.item=:item group by r.user
如何修改HQL查询以使其正常工作?
解决方法
您的查询应按预期工作,对您使用distinct的方式进行小幅修改:
select count(distinct r.user) from rating as r where r.item = :item group by r.user
执行此查询的其他更长时间的方法是使用用户和连接:
select count(distinct u) from User as u inner join u.ratings as r where r.item = :item group by r.user