SELECT、WHERE、GROUP BY
キャンペーンデータを集計します。
「SELECT、WHERE、GROUP BY」はCoddyKit上の無料Digital Marketing Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDigital Marketing Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Digital Marketing Academyコースには全4レッスンが含まれています。
3つの動詞
マーケティング指標のほとんどは、3つの句から作られます。SELECTは列を選び、WHEREは行を絞り込み、GROUP BYは行をセグメントにまとめます。
この3つを使いこなせば、日々の分析に関する問いの大半を自分で解決できます。
SELECT channel, SUM(revenue) AS revenue
FROM orders
GROUP BY channel;SELECT:列を選ぶ
SELECTには、取得したい項目を指定します。ASで列名を変更して出力を読みやすくしたり、その場で新しい値を計算したりできます。
結果セットは必要最小限にしましょう。特に大きなテーブルでは、本当に必要な列だけを取得してください。
SELECT campaign_id AS campaign,
spend,
spend * 1.2 AS spend_with_fees
FROM campaigns;WHERE:行を絞り込む
WHEREは、条件に一致する行だけを残します。ANDやORで条件を組み合わせ、特定のセグメントに絞り込めます。
日付フィルターはマーケターにとって基本中の基本で、レポートの期間を正確に定義します。
SELECT *
FROM sessions
WHERE channel = 'email'
AND session_date >= DATE '2026-01-01'
AND device = 'mobile';INとBETWEENでフィルタリングする
INはリスト内のいずれかの値に一致させるため、一度に複数のキャンペーンを扱うのに適しています。BETWEENは範囲を指定でき、日付の期間に最適です。
これらを使えば、ORを長く連ねる代わりに、複雑なフィルターを短く読みやすく書けます。
SELECT order_id, revenue
FROM orders
WHERE channel IN ('paid_search', 'paid_social')
AND order_date BETWEEN DATE '2026-03-01' AND DATE '2026-03-31';GROUP BY:セグメント化する
GROUP BYは、同じ値を持つ行をまとめ、グループごとに1行にします。SUM、COUNT、AVGなどの集計関数と組み合わせれば、セグメントごとの指標を取得できます。
これにより、生のイベントデータをチャネル別のパフォーマンステーブルに変換できます。
SELECT channel,
COUNT(*) AS sessions,
SUM(revenue) AS revenue
FROM sessions
GROUP BY channel;集計関数
SUMは収益を合計し、COUNTはイベント数を数え、AVGは平均値を求め、COUNT(DISTINCT ...)はユニークユーザー数を数えます。
マーケティングでは重複を除いたカウントが重要です。セッション総数とユニーク訪問者数は、まったく異なる数字だからです。
SELECT campaign_id,
COUNT(*) AS clicks,
COUNT(DISTINCT user_id) AS reach,
AVG(revenue) AS avg_order
FROM orders
GROUP BY campaign_id;複数列でグループ化する
複数の列でグループ化すると、チャネル別・デバイス別のようなマトリクスを作成できます。値の組み合わせがそれぞれ1行になります。
スプレッドシートにエクスポートすることなく、より深いセグメント分析ができるようになります。
SELECT channel, device,
COUNT(*) AS sessions
FROM sessions
GROUP BY channel, device
ORDER BY channel, sessions DESC;HAVING:グループの絞り込み
WHEREはグループ化の前に行を絞り込み、HAVINGは集計後にグループを絞り込みます。しきい値を超えるセグメントだけを残すにはHAVINGを使います。
たとえば、100件を超える注文を生み出したキャンペーンだけを表示します。
SELECT campaign_id, COUNT(*) AS orders
FROM orders
GROUP BY campaign_id
HAVING COUNT(*) > 100
ORDER BY orders DESC;並べ替えと件数制限
ORDER BYは結果を並べ替え、重要な行を先頭に表示します。LIMITは表示件数に上限を設けるため、トップNレポートに適しています。
この2つを組み合わせれば、「売上高が多い順にトップ5のキャンペーンは何か」という問いにもすぐ答えられます。
SELECT campaign_id, SUM(revenue) AS revenue
FROM orders
GROUP BY campaign_id
ORDER BY revenue DESC
LIMIT 5;条件付き集計
FILTER(または集計関数内のCASE)を使うと、新規ユーザーとリピーターの売上高のような複数の条件付き指標を、1つのクエリで同時に計算できます。
複数のクエリを実行せずに済み、セグメント間の条件も完全に揃えられます。
SELECT channel,
SUM(revenue) FILTER (WHERE is_new_customer) AS new_rev,
SUM(revenue) FILTER (WHERE NOT is_new_customer) AS repeat_rev
FROM orders
GROUP BY channel;すべてを組み合わせる
完全なクエリでは、WHEREで行を絞り込み、グループ化し、HAVINGでグループを絞り込んだ後、並べ替えて件数を制限します。
上から下へ読むと、チャネルについての分析結果を一つのストーリーとして読み取れます。
SELECT channel, SUM(revenue) AS revenue
FROM orders
WHERE order_date >= CURRENT_DATE - INTERVAL '30 days'
GROUP BY channel
HAVING SUM(revenue) > 1000
ORDER BY revenue DESC;クイックチェック
50件を超える注文があるキャンペーングループだけを取得したい場合、集計済みのグループを絞り込むのはどの句ですか?
まとめ
SELECTは列を選び、WHEREは行を絞り込み、GROUP BYはセグメント化し、HAVINGはグループを絞り込み、ORDER BYとLIMITは出力の形を整えます。
条件付き集計を使えば、複数の指標を1回の処理で計算できます。次は、JOINで複数のテーブルのデータを組み合わせます。
AI チューターと学ぶ Digital Marketing Academy — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 63
- レッスン
- 239
よくある質問
「SELECT、WHERE、GROUP BY」レッスンは無料ですか?
はい。「SELECT、WHERE、GROUP BY」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Digital Marketing Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Digital Marketing Academyコースには全4レッスンが含まれています。
「SELECT、WHERE、GROUP BY」で何を学びますか?
キャンペーンデータを集計します。 ブラウザで直接実行するハンズオンコードでDigital Marketing Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Digital Marketing Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのDigital Marketing Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「SELECT、WHERE、GROUP BY」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このDigital Marketing Academyレッスンでコードを書いて実行できますか?
はい。すべてのDigital Marketing Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- マーケターがSQLを学ぶ理由
- SELECT、WHERE、GROUP BY
- マーケティングテーブルを結合する
- コホートとファネルのクエリ