MySQL,获得所有顶级用户

时间:2018-02-04 16:05:15

标签: php mysql

我有一个名为items的表格,其中有3列:id, user_id, item_name。 我想选择并显示该表中提交项目最多的所有用户。

例如:

User-1 has 3 items, 
User-2 has 8 items, 
User-3 has 5 items, 
User-4 has 8 items, and 
User-5 has 8 items too.

根据我的需要,查询应输出User-2,User-4和User-5。

遗憾的是,我对MySQL的了解并不彻底,我不能自己完成。

非常感谢您的帮助。

编辑#1:

这是我尝试过但未输出所需结果的查询:

SELECT COUNT(id) AS total_count
     , user_id 
  FROM ".DB_PREFIX."items 
 GROUP 
    BY user_id

显示所有用户及其提交的项目总数。正如我之前提到的,我需要所有顶级用户。

1 个答案:

答案 0 :(得分:0)

E.g:

SELECT a.* 
  FROM   
     ( SELECT user_id
            , COUNT(*) total 
         FROM my_table 
        GROUP 
           BY user_id
     ) a 
  JOIN 
     ( SELECT COUNT(*) total 
         FROM my_table 
        GROUP 
           BY user_id 
        ORDER 
           BY total DESC 
        LIMIT 1
     ) b 
    ON b.total = a.total;