2

我的数据库中有一个“记录”表和一个“用户名”列,其中存储了具有该记录的用户的名称。我想获得记录数最多的用户。我唯一的想法是构建一种方法来获取每个用户的记录数,然后找到其中最大的数。是否有任何 SQL 查询来执行此操作或更简单的方法?谢谢你。

4

4 回答 4

8
select username, count(*)
from Records
group by username
order by count(*) desc
limit 1
于 2013-01-22T19:28:03.660 回答
2

另一种方式

select username
from records
having count(*) = 
    (SELECT max(count(*)) FROM records group by username)
group by username
于 2013-01-22T19:53:18.777 回答
2
select username, count(*) As no_of_records
from Records
group by username
order by no_of_records desc

上面的查询将给出降序为 no 的所有行。用户的记录和任意数量的限制,您可以使用LIMIT关键字后跟数字

为了。例如最高LIMIT 1

前2名LIMIT 2

于 2013-01-22T19:31:41.383 回答
1

尝试这个

  SELECT username, sum(record) total_record
  FROM Records
  GROUP BY username
  ORDER BY count(*) desc  

编辑 :

演示 SQLFIDLE

** 如果您只想获得第一高,请执行 LIMIT 1

 select username, sum(record) total_record
 from Records
 group by username
 order by count(*) desc
 limit 1

演示在这里

于 2013-01-22T19:34:33.057 回答