我的数据库中有一个“记录”表和一个“用户名”列,其中我存储了具有该记录的用户的名称。我想让用户拥有最多的记录。我唯一的想法是构建一个方法来获取每个用户的记录数,然后找到其中最大的数字。 是否有任何SQL查询来执行此操作或更简单的方法? 谢谢。
答案 0 :(得分:6)
select username, count(*)
from Records
group by username
order by count(*) desc
limit 1
答案 1 :(得分: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
等
答案 2 :(得分:2)
另一种方式
select username
from records
having count(*) =
(SELECT max(count(*)) FROM records group by username)
group by username
答案 3 :(得分: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