255

特定のフィールドで DISTINCT 値を検索し、その値の出現回数をカウントし、結果をカウント順に並べ替える MySQL クエリを見つけようとしています。

例データベース

id         name
-----      ------
1          Mark
2          Mike
3          Paul
4          Mike
5          Mike
6          John
7          Mark

期待される結果

name       count
-----      -----
Mike       3
Mark       2
Paul       1
John       1
4

3 に答える 3

450
SELECT name,COUNT(*) as count 
FROM tablename 
GROUP BY name 
ORDER BY count DESC;
于 2009-08-28T11:10:59.237 に答える
19

このようなものはどうですか:

SELECT
  name,
  count(*) AS num
FROM
  your_table
GROUP BY
  name
ORDER BY
  count(*)
  DESC

名前と表示される回数を選択していますが、名前でグループ化するため、各名前は 1 回だけ選択されます。

最後に、最も頻繁に表示されるユーザーが最初になるように、DESCending の回数で並べ替えます。

于 2009-08-28T11:11:37.690 に答える