在SQLite中选择前10个计数

时间:2015-08-19 20:52:07

标签: sql select sqlite top-n

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

id,question,answers,author

我想获得一份撰写问题最多的十大作者名单。所以需要先计算每个作者写的问题数量,然后按计数排序然后返回前10名。

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

3 个答案:

答案 0 :(得分:3)

SELECT BY COUNT(author)
    ,author
FROM table_name
GROUP BY author
ORDER BY COUNT(author) DESC LIMIT 10;

答案 1 :(得分:3)

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

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

答案 2 :(得分:1)

您可以将查询包装为子查询,然后使用LIMIT,如下所示:

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