GROUP BYについての詳細な解説と使用例。データをグループ化して集計する方法を学べます。
GROUP BY は指定した列の値が同じ行をひとまとめにし、COUNT・SUM・AVG・MAX・MIN などの集計関数と組み合わせてグループごとの集計値を求めるための構文です。
集計結果をさらに絞り込むには HAVING句 を使います。
カテゴリごとの商品数を集計
クエリを実行してください
ユーザーごとの注文数量合計を集計
クエリを実行してください
カテゴリごとの平均価格・最高価格を集計
クエリを実行してください
3件以上注文したユーザーを集計(HAVING句)
クエリを実行してください
SELECT に書ける列は GROUP BY 列か集計関数だけ
GROUP BY していない列をそのまま SELECT に書くとエラーになる(MySQLの一部モードを除く)。
集計結果の絞り込みは HAVING を使う
WHERE は集計前の絞り込み、HAVING は集計後の絞り込み。混同しないよう注意。
NULL はひとつのグループとして扱われる
GROUP BY 列に NULL が含まれる場合、NULL どうしが同じグループにまとめられる。
ORDER BY と組み合わせて集計結果を並べ替えできる
GROUP BY の後に ORDER BY AGG_FUNC(...) DESC のように書くことで、集計値順に並び替えられる。
- カテゴリ・部門ごとの件数・合計を集計するとき
- ユーザーごとの購買総額を算出するとき
- 日別・月別の売上を集計するとき
- 集計結果に条件をかけてランキングを作るとき
#30 商品別注文件数
この問題にチャレンジするにはログインが必要です。ログインして全ての練習問題にアクセスしましょう。
#33 カテゴリ別平均価格
この問題にチャレンジするにはログインが必要です。ログインして全ての練習問題にアクセスしましょう。
#35 日別注文件数
この問題にチャレンジするにはログインが必要です。ログインして全ての練習問題にアクセスしましょう。
#39 カテゴリ別注文件数
この問題にチャレンジするにはログインが必要です。ログインして全ての練習問題にアクセスしましょう。