2

データベースに「Records」テーブルがあり、「username」列にレコードを持つユーザーの名前が格納されています。レコード数が最も多いユーザーを取得したい。私が持っている唯一のアイデアは、各ユーザーのレコード数を取得し、その中で最大の数を見つけるメソッドを構築することです。これを行うための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, count(*) As no_of_records
from Records
group by username
order by no_of_records desc

上記のクエリは、降順がnoのすべての行を提供します。LIMITユーザーのレコードの数と、任意の数の制限に対して、キーワードの後に​​数字を使用できます

にとって。例:最高LIMIT 1

トップ2LIMIT 2 など

于 2013-01-22T19:31:41.383 に答える
2

別の方法

select username
from records
having count(*) = 
    (SELECT max(count(*)) FROM records group by username)
group by username
于 2013-01-22T19:53:18.777 に答える
1

これを試して

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

編集 :

デモSQLFIDLE

**最初の最高値だけを取得したい場合は、LIMIT1を実行します

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

こちらのデモ

于 2013-01-22T19:34:33.057 に答える