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