【问题标题】:Selecting top 10 counts in SQLite选择 SQLite 中的前 10 个计数
【发布时间】:2015-11-13 08:11:50
【问题描述】:

我有一张记录问题、答案和作者的表格。列名如下:

id、问题、答案、作者

我想获得一个写出最多问题的前 10 位作者的名单。所以它需要先计算每个作者写的问题的数量,然后按数量对它们进行排序,然后返回前 10 个。

这是在 SQLite 中,我不确定如何获取计数列表。第二部分应该相当简单,因为它只是一个ORDER BY 和一个LIMIT 10。如何将计数放入可以从中选择的列表中?

【问题讨论】:

  • 也许您想要一个WITH statement,它允许您在查询期间从伪表中SELECT?要获得实际的计数列表,请查看 GROUP BYCOUNT 语句/函数。

标签: sql select sqlite top-n


【解决方案1】:
SELECT BY COUNT(author)
    ,author
FROM table_name
GROUP BY author
ORDER BY COUNT(author) DESC LIMIT 10;

【讨论】:

    【解决方案2】:

    您可以将order by 子句应用于聚合查询:

    SELECT   author, COUNT(*)
    FROM     mytable
    GROUP BY author
    ORDER BY 2 DESC
    LIMIT    10
    

    【讨论】:

      【解决方案3】:

      您可以将查询包装为子查询,然后像这样使用LIMIT

      SELECT *
      FROM (
          SELECT author
              ,COUNT(*) AS cnt
          FROM mytable
          GROUP BY author
          ) t
      ORDER BY t.cnt DESC 
      LIMIT 10;
      

      【讨论】:

        猜你喜欢
        • 2011-12-31
        • 2020-06-19
        • 1970-01-01
        • 1970-01-01
        • 2012-06-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多