【SQL例付き】SQL HAVING句の使い方
【記事作成者】 酒井 裕麻 (株式会社Bistro 代表取締役社長)
はじめに
データ集計時に欠かせないSQLですが、大容量のデータを集計する際は集計コストの軽量化が重要です。
集計コストの軽量化を実現する際に、よく使用される「HAVING句」の使い方を紹介します。
HAVING句は、グループ化したデータに対して条件を設定するときに使う関数です。
この記事では、HAVING句の基本的な使い方から、WHERE句との違い、実際の活用シーンまでをわかりやすく紹介します。
SQLの集計処理を効率化し、より軽量でスマートなデータ分析に役立てていきましょう。
SQL HAVING句とは?
HAVING句(ハビング句)は、GROUP BYでグループ化した後の集計結果に対して条件を指定するための関数です。
例えば購入データのログに対して、合計購入金額が10,000円以上のユーザーに、データを限定したい場合について考えます。
HAVING句を使わない場合、ユーザーごとの合計購入金額を集計して、その後10,000円以上の購入が行われているユーザーに限定する処理を行う必要があります。
SQL HAVING句を使わない場合
WITH USER_PURCHASE_AMOUNT AS ( SELECT USER_ID , SUM(PURCHASE_AMOUNT) AS TOTAL_AMOUNT FROM PURCHASE_LOG GROUP BY USER_ID ) SELECT USER_ID FROM USER_PURCHASE_AMOUNT WHERE TOTAL_AMOUNT >= 100000
一方でHAVING句を使うことで、SUM()などのGROUP BYが必要な集計関数の結果に対して、集計条件を適用することができます。
実際にHAVING句を使用したSQLの例をもとに確認しましょう。
SQL HAVING句を使う場合
SELECT USER_ID , SUM(PURCHASE_AMOUNT) AS TOTAL_AMOUNT FROM PURCHASE_LOG GROUP BY USER_ID HAVING TOTAL_AMOUNT >= 100000
このようにHAVING句を使用することでSQL自体も簡略化でき、WITH句を使用しないでもSQLを記載することができました。
SQL HAVING句のメリット
GROUP化した集計関数に対して、集計条件をかけることができるSQL HAVING句を使うことは、大容量データ集計においてメリットをもたらします。
SQLの簡略化(シンプル)
例に挙げたSQLで、記載するSQLが短くなったようにSQLをシンプルに保てます。
SQLをシンプルに保つことでSQLを誰かに渡した際に、読みやすいSQLとなり認識齟齬が発生しにくくなります。
集計処理の軽量化
SQL HAVING句を使わない場合の処理は、以下のように記載できます。
「各ユーザーの合計購入数を集計」→「集計結果を1度ネストに保持」→「ネストから集計条件に合うデータを抜き出す」
一方で、SQL HAVING句を使用した場合の処理は、以下のように記載できます。
「各ユーザーの合計購入数を集計」→「結果から集計条件に合うデータを抜き出す」
このようにHAVING句を使用することで集計時の処理工程が1つ少なくなることがわかりました。
処理工程が少なくなる = 集計処理が軽量化されるので、大容量の集計においては重宝されます。
最後に
大容量のデータを使用する際は、集計処理の軽量化が非常に重要な課題となります。
HAVING句を使用することでなるべく軽量化した状態での集計を行うように心がけましょう。
============================================================================================= この記事を書いた人📝 酒井 裕麻 (株式会社Bistro 代表取締役社長) 慶應義塾大学 理工学部 物理情報工学科 卒業。 外資系広告代理店 マッキャンエリクソン に新卒で入社後、データサイエンティストとしてCRM分析やマーケティングミックスモデリング(MMM)を数多く手掛ける。 その後独立し、データマーケティングカンパニー 株式会社Bistro を設立。 現在は、大手通信キャリア、銀行、IT企業、外資系広告代理店などをクライアントに、データ分析・BI導入・広告最適化支援を幅広く提供している。 ============================================================================================= 📩 データに関するお問い合わせはお気軽にどうぞ
マーケティング分析、GA4やLooker Studioを活用したBIダッシュボード構築、BigQuery等を用いたデータ基盤整備まで、
貴社の課題に合わせた最適なデータ活用をご提案します。
ご相談は無料です。お気軽に以下のお問い合わせフォームよりご連絡ください。
このコンテンツをシェアする
