【发布时间】:2013-01-18 08:59:19
【问题描述】:
我目前有一个这种结构的表:
我希望能够根据条目的数量从表中选择 top 3 user_id 的,因此是表中行数最多的三个用户。 (它仅在下面的屏幕截图中显示 id 为 111 的用户,但该表中显然还有更多条目)。
有人有什么建议吗?
【问题讨论】:
我目前有一个这种结构的表:
我希望能够根据条目的数量从表中选择 top 3 user_id 的,因此是表中行数最多的三个用户。 (它仅在下面的屏幕截图中显示 id 为 111 的用户,但该表中显然还有更多条目)。
有人有什么建议吗?
【问题讨论】:
试试这个:
select user_id,count(user_id) as cnt from table
group by user_id
order by cnt desc
limit 0,3;
【讨论】:
userID, totalCount,1, 5,2, 5,3, 5,4, 5 ,5, 5
select user_id, count(*) from table group by user_id order by count(*) desc limit 0,3
【讨论】:
试试这个查询,按用户 ID 分组,按最高条目排序并将结果限制为前 3 个结果。
select user_id, count(sickness_submission_id) as entries from <table Name> group by user_id order by entries desc limit 0, 3;
【讨论】:
【讨论】:
怎么样:
SELECT COUNT(user_id) AS Number-of-entries, user_id FROM table GROUP BY user_id ORDER BY count(user_id) DESC LIMIT 3;
细分: COUNT(user_id) 对所有 user_id 进行计数(并为其提供输出标题“条目数”)。 GROUP BY 只显示每个 user_id 一次。 ORDER BY DESC 打印带有条目数的结果,从多到少。 LIMIT 3 仅显示前三个结果。
【讨论】: