【问题标题】:MYSQL query to select users from a table who have the most entriesMYSQL 查询从具有最多条目的表中选择用户
【发布时间】:2013-01-18 08:59:19
【问题描述】:

我目前有一个这种结构的表:

我希望能够根据条目的数量从表中选择 top 3 user_id 的,因此是表中行数最多的三个用户。 (它仅在下面的屏幕截图中显示 id 为 111 的用户,但该表中显然还有更多条目)。 有人有什么建议吗?

【问题讨论】:

    标签: mysql count


    【解决方案1】:

    试试这个:

    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
    【解决方案2】:
    select user_id, count(*) from table group by user_id order by count(*) desc limit 0,3
    

    【讨论】:

      【解决方案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;
      

      【讨论】:

        【解决方案4】:

        【讨论】:

          【解决方案5】:

          怎么样:

          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 仅显示前三个结果。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-10-31
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多