Как получить упорядоченный список лучших статей с минимальным количеством голосов, используя HQL? - PullRequest
0 голосов
/ 07 июня 2010

У меня есть класс домена Vote из моего приложения Grails, содержащий такие свойства, как article_id и note

Я хочу запросить HQL к классу домена Vote, чтобы получить 5 статей с самым высоким рейтингом, имеющих не менее 10 голосов.

Я пытался:

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 голосов
/ 07 июня 2010

Не имея возможности проверить это, я не хочу пытаться угадать, как будет выглядеть окончательный запрос, но HAVING COUNT(*) >= 10 может быть чем-то, на что можно посмотреть.

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

0 голосов
/ 07 июня 2010

Попробуйте это:

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;
0 голосов
/ 07 июня 2010

не работает следующее?

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;
...