HAVING

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 + 集計ログインして解除

この問題にチャレンジするにはログインが必要です。ログインして全ての練習問題にアクセスしましょう。

関連クエリ
QSQL Quest