ORDER BY句はグループ関数を使ってソートができます。
グループ関数で集計した結果を並び替えたい場合に便利です。
ORDER BY句でグループ関数を使う
サンプルデータ
SELECT
    CLASS
  , NAME
FROM
    TB_SAMPLE
;
CLASS        NAME
------------ ------------
3年1組       山田 太郎
3年2組       田中 太郎
3年2組       田中 二郎
3年3組       鈴木 太郎
3年3組       鈴木 二郎
3年3組       鈴木 三郎
サンプルSQL
下記のSQLはクラス毎で人数が多い順で結果を表示できます。
SELECT
    CLASS
  , COUNT(*)
FROM
    TB_SAMPLE
GROUP BY
    CLASS
ORDER BY
    COUNT(*) DESC
;
CLASS          COUNT(*)
------------ ----------
3年3組                3
3年2組                2
3年1組                1
サンプルデータ
SELECT
    CLASS
  , NAME
  , SCORE
FROM
    TB_SAMPLE
;
CLASS        NAME              SCORE
------------ ------------ ----------
3年1組       山田 太郎           50
3年2組       田中 太郎          100
3年2組       田中 二郎           90
3年3組       鈴木 太郎           70
3年3組       鈴木 二郎           80
3年3組       鈴木 三郎           90
サンプルSQL
下記のSQLはクラス毎で平均点が高い順に結果を表示できます。
SELECT
    CLASS
  , AVG(SCORE)
FROM
    TB_SAMPLE
GROUP BY
    CLASS
ORDER BY
    AVG(SCORE) DESC
;
CLASS        AVG(SCORE)
------------ ----------
3年2組               95
3年3組               80
3年1組               50