代码之家  ›  专栏  ›  技术社区  ›  fabien7474 Jan Tchärmän

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

  •  0
  • fabien7474 Jan Tchärmän  · 技术社区  · 15 年前

    我有一个 Vote 来自Grails应用程序的域类,包含 article_id note

    我想查询 投票 域类,以便检索至少有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 回复  |  直到 15 年前
        1
  •  0
  •   Lauri Lehtinen    15 年前

    由于无法测试它,我不愿意尝试猜测最终查询的外观,但是 HAVING COUNT(*) >= 10 可能是要看的东西。

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

        2
  •  0
  •   silk    15 年前

    试试看:

    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;
    
        3
  •  0
  •   Mihai Toader    15 年前

    以下工作不正常吗?

    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;