本文へスキップ
martechfarmDATA & TECHNOLOGY DOCS

すべての記事のタイトル・本文を検索

すべての記事

127 件

タイトルを選ぶと本文が開きます

SQL練習問題 014: productsの価格の基本統計を見る

SQLで「見えた」瞬間を、あなたはまだ知らない

SQL練習問題:価格帯別にproductsの件数を確認する

SQL練習問題:ブランド別にproductsの件数を確認する

マーケターがSQLを書くとき、何が変わるのか

SQL練習問題:商品カテゴリ別にproductsの件数を確認する

Hiveはfalse、Trinoはtrueになる理由|整数除算の落とし穴

生成AIがレコメンドを再定義 「アルゴリズムの提案」から「会話による発見」へ

SQL練習問題:登録月別にusersの件数を確認する

SQL練習問題:正規化した獲得チャネル別にusersの件数を確認する

問いを持つことが、SQLより大事な理由

SQL練習問題:獲得チャネル別にusersの件数を確認する

SQL練習問題:正規化した都道府県別にusersの件数を確認する

SQL練習問題:都道府県別にusersの件数を確認する

「エンジニアに頼む」という習慣が奪っているもの

SQL練習問題:広告クリック後7日以内の購入を集計する

Netflix・Amazon・Spotifyが変えた消費者行動「共通点」と「違い」

SQL練習問題:商品カテゴリ別の売上と粗利を集計する

SQL練習問題:月別売上と平均注文単価を出す

マーケター必見!SQLがビジネスで変える思考法

SQL練習問題:獲得チャネルの表記ゆれを見つける

Spotifyが「発見の喜び」をデータで設計する

SQL練習問題:都道府県別の会員数を確認する

紹介の伝播をSQLで追跡する方法「スーパースプレッダー」は誰か

本文
記事一覧へ ↑

SQL練習問題:広告クリック後7日以内の購入を集計する

難易度: 上級 / 使用テーブル: ad_clicks, campaigns, orders

問題

ad_clicks、campaigns、ordersを使い、広告クリック日から7日以内に発生した注文をキャンペーン別に集計してください。

スターターSQL

SELECT
  c.name,
  COUNT(a.id) AS clicks,
  SUM(a.cost) AS cost
FROM ad_clicks a
JOIN campaigns c ON a.campaign_id = c.id
GROUP BY c.id, c.name
ORDER BY cost DESC

解答例

SELECT
  c.name,
  c.channel,
  COUNT(DISTINCT a.id) AS clicks,
  SUM(a.cost) AS cost,
  COUNT(DISTINCT o.id) AS attributed_orders,
  SUM(o.total_amount) AS attributed_revenue,
  ROUND(SUM(o.total_amount) * 1.0 / NULLIF(SUM(a.cost), 0), 2) AS attributed_roas
FROM ad_clicks a
JOIN campaigns c ON a.campaign_id = c.id
LEFT JOIN orders o
  ON a.user_id = o.user_id
 AND julianday(o.order_date) BETWEEN julianday(a.click_date) AND julianday(a.click_date) + 7
GROUP BY c.id, c.name, c.channel
ORDER BY attributed_roas DESC

見るべきポイント

広告接触と購入を期間条件付きでJOINする練習です。
実務ではアトリビューション期間、重複クリック、媒体IDと自社DB IDの対応が論点になります。

SQL練習場でこの問題を試す

MarTech Farmをもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む