広告スペース(バナー)
🗄️SQL レッスン
データ操作とサブクエリ5▾
構文の基本を深める7▾
応用的な条件・結合7▾
検索とテーブル操作の応用6▾
高度なクエリ技法6▾
集計とデータ整合性6▾
レッスン 40 / 50
CASE式を使った条件付き集計
このレッスンでは、CASE式を使った条件付き集計を学び、1回のクエリで複数の条件別の件数を同時に取得できるようになることを目標にします。「SQL 条件付き集計 CASE COUNT」で調べている方向けです。
COUNT()の中にCASE式を組み合わせると、「条件に合う行だけを数える」という条件付きの集計ができます。「80点以上の人数」と「それ未満の人数」を1つのクエリで同時に集計する、といったことが可能です。
サンプルコードでは、COUNT(CASE WHEN score >= 80 THEN 1 END)という形で、条件に合う行だけを1としてカウントし、条件に合わない行(ELSEを省略しているのでNULLになる)はカウントの対象外にしています。COUNT()はNULLを数えない、という性質を利用したテクニックです。
初心者がよくつまずくのが、なぜELSEを書かなくてよいのかという点です。CASE式でELSEを省略すると、条件に合わない場合は自動的にNULLになり、COUNT()はNULLをカウントしないため、結果的に「条件に合う行だけを数える」という動作になります。
クエリを何度も実行して結果を組み合わせる必要がなく、1回のSELECT文で複数の条件別集計を横並びに得られるため、ダッシュボードやレポート作成の効率が大きく向上するテクニックです。
SQL
OUTPUT / 実行結果
💡 初回実行時はSQLエンジンの読み込みに数秒かかります。
🎯
ここまでできればゴール達成!
条件ごとに集計を分ける、少し高度な集計ができるようになります。
条件ごとに集計を分ける、少し高度な集計ができるようになります。
広告スペース(バナー)
広告スペース(記事内)