我的数据库中有一个“记录”表和一个“用户名”列,其中存储了具有该记录的用户的名称。我想获得记录数最多的用户。我唯一的想法是构建一种方法来获取每个用户的记录数,然后找到其中最大的数。是否有任何 SQL 查询来执行此操作或更简单的方法?谢谢你。
问问题
590 次
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
编辑 :
** 如果您只想获得第一高,请执行 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 回答