我的grails应用程序中有一个Vote
域类,其中包含article_id
和note
我希望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
会引发错误。
我怎样才能以简单的方式做到这一点?
感谢您的帮助。
答案 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
可能需要关注。
答案 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;