サイトアイコン こじりふぁ

Order By句でグループ関数を使う

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