広告スペース(バナー)
🗄️SQL レッスン
データ操作とサブクエリ5▾
構文の基本を深める7▾
応用的な条件・結合7▾
検索とテーブル操作の応用6▾
高度なクエリ技法6▾
集計とデータ整合性6▾
レッスン 17 / 50
HAVING句で集計結果を絞り込む
このレッスンでは、HAVING句を使った集計結果の絞り込みを学び、WHEREとの違いを理解することを目標にします。「SQL HAVING 使い方」「SQL WHERE HAVING 違い」で調べている方向けです。
WHEREは集計前の行を絞り込みますが、HAVINGはGROUP BYで集計した「あとの結果」を絞り込みます。「3件以上ある班だけ表示」のような条件に使います。
サンプルコードでは、GROUP BY class_idで集計したあと、HAVING COUNT(*) >= 2という条件で「人数が2人以上のクラスだけ」を絞り込んでいます。集計関数の結果に対する条件はWHEREではなくHAVINGで書く必要がある点がポイントです。
初心者がよくつまずくのが、WHEREの中にCOUNT()のような集計関数を書いてしまい、エラーになることです。WHEREはGROUP BYより先に、HAVINGはGROUP BYより後に評価されるという実行順序の違いを理解しておくと、「なぜWHEREではCOUNT()の条件が書けないのか」という疑問がすっきり解消します。
「一定件数以上のグループだけを見たい」という要件は、売上分析やアクセス集計など実務のレポート作成で頻繁に登場します。WHEREとHAVINGを正しく使い分けられることは、集計クエリを書くうえで欠かせないスキルです。
SQL
OUTPUT / 実行結果
💡 初回実行時はSQLエンジンの読み込みに数秒かかります。
🎯
ここまでできればゴール達成!
集計した後の結果を、さらに条件で絞り込めるようになります。
集計した後の結果を、さらに条件で絞り込めるようになります。
広告スペース(バナー)
広告スペース(記事内)