如何使用HQL检索具有最少投票数的最佳文章的有序列表?

时间:2010-06-06 22:09:43

标签: java sql hibernate grails hql

我的grails应用程序中有一个Vote域类,其中包含article_idnote

等属性

我希望HQL查询Vote域类,以便检索至少有10票的5篇评价最高的文章。

我试过了:

SELECT v.article_id, avg(v.note), count(*) FROM vote v where count(*) >= 10  group by v.article_id order by avg(v.note) desc limit 5;

但不幸的是,插入where count(*) >= 10会引发错误。

我怎样才能以简单的方式做到这一点?

感谢您的帮助。

3 个答案:

答案 0 :(得分:0)

没有以下工作?

SELECT v.article_id, avg(v.note), count(*) as count 
FROM vote v 
where count >= 10  
group by v.article_id 
order by avg(v.note) desc limit 5;

稍后编辑:试试这个

SELECT v.article_id, avg(v.note) 
from vote v 
group by v.article_id 
having count(*) >= 10
order by avg(v.note) desc limit 5;

答案 1 :(得分:0)

无法测试它,我不愿意尝试猜测最终查询的外观,但HAVING COUNT(*) >= 10可能需要关注。

http://www.sqlcommands.net/sql+having/

答案 2 :(得分:0)

试试:

SELECT v.article_id, avg(v.note),
FROM vote v 
GROUP BY v.article_id
HAVING count(*) >= 10
OREDER BY avg(v.note) desc limit 5;