我目前有一个这种结构的表:
我希望能够根据条目的数量从表中选择前 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;
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;
试试这个选择前 n 条记录谓词示例
怎么样:
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 仅显示前三个结果。