在SQLite中选择前10个计数

5
我有一张表格,记录了问题、答案和作者。列名如下:
id, question, answers, author 我想要一个包含写最多问题的前10名作者的列表。因此,需要首先计算每个作者编写的问题数量,然后按照计数排序,最后返回前10名。
这是在SQLite中,我不太确定如何获得计数列表。第二部分应该很简单,只需使用ORDER BYLIMIT 10即可。我怎样才能将计数放入一个列表中以便从中选择呢?

也许您需要一条 WITH 语句,它将允许您在查询期间从伪表中进行“SELECT”操作?为了获取实际的计数列表,请查看 GROUP BYCOUNT 语句/函数。 - tew
3个回答

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

3

您可以在聚合查询中使用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;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接