在 SQLite 中选择前 10 个计数
Selecting top 10 counts in SQLite
我有一个 table 记录问题、他们的答案和他们的作者。列名如下:
id、问题、答案、作者
我想获得写问题最多的前 10 位作者的列表。所以它需要首先计算每个作者写的问题的数量,然后按数量排序,然后 return 前 10 个。
这是在 SQLite 中,我不确定如何获取计数列表。第二部分应该相当简单,因为它只是一个 ORDER BY
和一个 LIMIT 10
。我怎样才能将计数放入我可以从中 select 的列表中?
SELECT BY COUNT(author)
,author
FROM table_name
GROUP BY author
ORDER BY COUNT(author) DESC LIMIT 10;
您可以将 order by
子句应用于聚合查询:
SELECT author, COUNT(*)
FROM mytable
GROUP BY author
ORDER BY 2 DESC
LIMIT 10
您可以将查询包装为子查询,然后像这样使用 LIMIT
:
SELECT *
FROM (
SELECT author
,COUNT(*) AS cnt
FROM mytable
GROUP BY author
) t
ORDER BY t.cnt DESC
LIMIT 10;
我有一个 table 记录问题、他们的答案和他们的作者。列名如下:
id、问题、答案、作者
我想获得写问题最多的前 10 位作者的列表。所以它需要首先计算每个作者写的问题的数量,然后按数量排序,然后 return 前 10 个。
这是在 SQLite 中,我不确定如何获取计数列表。第二部分应该相当简单,因为它只是一个 ORDER BY
和一个 LIMIT 10
。我怎样才能将计数放入我可以从中 select 的列表中?
SELECT BY COUNT(author)
,author
FROM table_name
GROUP BY author
ORDER BY COUNT(author) DESC LIMIT 10;
您可以将 order by
子句应用于聚合查询:
SELECT author, COUNT(*)
FROM mytable
GROUP BY author
ORDER BY 2 DESC
LIMIT 10
您可以将查询包装为子查询,然后像这样使用 LIMIT
:
SELECT *
FROM (
SELECT author
,COUNT(*) AS cnt
FROM mytable
GROUP BY author
) t
ORDER BY t.cnt DESC
LIMIT 10;