1. ホーム
  2. mysql

[解決済み] SQL Order By Count

2023-05-03 20:46:56

質問

このようなテーブルとデータがある場合。

ID |  Name  |  Group   

1    Apple     A    

2    Boy       A

3    Cat       B

4    Dog       C

5    Elep      C

6    Fish      C

というように、グループの合計が小さいものから大きいものへと順番に並べたいと思います。 A - 2レコード、B - 1レコード、C - 3レコードのように、それはなるように。

3    Cat       B

1    Apple     A    

2    Boy       A

4    Dog       C

5    Elep      C

6    Fish      C

私は

    $sql = "SELECT ID,Name FROM table ORDER BY COUNT(Group)";

を実行しましたが、結果は1つだけでした。

何かヒントがあるのでしょうか?よろしくお願いします。

どのように解決するのですか?

GROUP BY 句を使用して、データを集計する必要があります。

SELECT Group, COUNT(*)
FROM table
GROUP BY Group
ORDER BY COUNT(*) DESC

DESCキーワードを使用すると、カウントの大きいものを最初に表示することができます。ORDER BYのデフォルトでは、カウントの小さいものを最初に表示する昇順で注文します。