HAVING句についての詳細な解説と使用例。GROUP BY後の集計結果を絞り込む方法を学べます。
説明
HAVING は GROUP BY でグループ化・集計した結果に対して条件を指定するための句です。
WHERE が集計前の行フィルタであるのに対し、HAVING は集計後のグループフィルタです。
基本構文
quest.sql
Loading...
例文
3件以上注文したユーザーのみ抽出
quest.sql
Loading...
— RESULT
クエリを実行してください
カテゴリ別合計価格が100,000円を超えるカテゴリを抽出
quest.sql
Loading...
— RESULT
クエリを実行してください
平均価格が1,000円以上のカテゴリを抽出
quest.sql
Loading...
— RESULT
クエリを実行してください
注意点
WHERE と HAVING の使い分けが重要
集計関数(COUNT・SUM など)を条件に使いたい場合は HAVING。集計前の列で絞り込む場合は WHERE の方が効率的。
WHERE と HAVING の併用が可能
WHERE で先に行を絞り込んでから GROUP BY・HAVING で集計・フィルタリングすると効率が上がる。
HAVING は GROUP BY なしでも使えるが実用的でない
GROUP BY なしの場合はテーブル全体が1グループとして扱われる。通常は GROUP BY とセットで使う。
使用シーン
- N件以上購入した顧客を抽出するとき
- 合計売上が一定以上のカテゴリを絞り込むとき
- 平均評価が高い商品グループを抽出するとき
- グループ集計後にランキング条件をかけるとき
このクエリを実践するには?
#36 ユーザー別購入数量
中級JOIN + 集計ログインして解除
この問題にチャレンジするにはログインが必要です。ログインして全ての練習問題にアクセスしましょう。
関連クエリ