青の統計学-DS Playground-

分析ワークフロー: 問いからSQL、可視化、改善まで

Stage 5 — 第5章 | データ分析基礎カリキュラム 推定学習時間:30〜40分 | 難易度:★★★☆☆


この章で学ぶこと

SQLを書けるようになることは重要ですが、実務の分析はSQLだけで完結しません。 問いを決め、データを確認し、SQLで集計し、可視化し、改善につなげる流れが必要です。

この章では、実務の入口としての 分析ワークフロー を学びます。

この章を終えると、こんなことができるようになります:

  • 分析の流れを手順で説明できる
  • 問いをSQLに落とし込む考え方を理解できる
  • 集計結果を可視化や改善案につなげられる
  • 分析時に記録すべき情報を整理できる

1. 分析は問いから始まる

よい分析は、よい問いから始まります。 たとえば「売上が下がった理由を知りたい」という問いは、まだ少し広すぎます。

次のように分解すると、SQLに落とし込みやすくなります。

問い SQLで見るもの
いつ下がったのか 月別売上、日別売上
何が下がったのか 商品カテゴリ別売上
誰の購入が減ったのか 顧客属性別売上、リピート率
件数か単価か 注文件数、平均注文金額

問いを具体化すると、必要なテーブルと指標が見えてきます。


2. 分析依頼を受けたときの整理メモ

実務では、「売上を見て」「ユーザーの動きを見て」のように、依頼が曖昧な状態で届くことがあります。 そのままSQLを書くと、依頼者の知りたいことと違う集計になることがあります。

まず、次のようなメモに整理します。

項目
判断したいこと 2026年春以降に売上が下がった理由を知りたい
対象期間 2026年1月から6月
対象データ 完了注文のみ。キャンセル注文は除外
比較軸 月別、商品カテゴリ別、顧客属性別
主要指標 売上、注文件数、購入者数、平均注文金額
想定アクション 低下カテゴリの商品構成や価格を確認する

このメモがあると、SQLの目的が明確になります。 分析は「数字を出す作業」ではなく、「判断に必要な数字を定義する作業」から始まります。


3. データを確認する

SQLを書く前に、対象データを確認します。

SELECT
            order_id,
            customer_id,
            order_date,
            status,
            total_amount
          FROM orders
          ORDER BY order_date DESC
          LIMIT 10;
          

ステータスの種類も確認します。

SELECT
            status,
            COUNT(*) AS order_count
          FROM orders
          GROUP BY status
          ORDER BY order_count DESC;
          

いきなり最終集計を書くのではなく、まず列、値、件数、欠損を確認します。 この作業で、指標定義や除外条件の抜けに気づけます。


4. SQLで集計する

問いが「月別に売上が下がったか」を見るものなら、月別売上を集計します。

SELECT
            DATE_TRUNC('month', order_date) AS order_month,
            COUNT(*) AS order_count,
            COUNT(DISTINCT customer_id) AS purchasing_customers,
            SUM(total_amount) AS sales,
            AVG(total_amount) AS average_order_amount
          FROM orders
          WHERE status = 'completed'
          GROUP BY DATE_TRUNC('month', order_date)
          ORDER BY order_month;
          

この結果から、売上低下が注文件数の減少なのか、平均注文金額の低下なのかを見ます。 必要に応じて、商品カテゴリや都道府県でさらに分解します。


5. 可視化して伝える

集計結果は、表だけでなくグラフにすると伝わりやすくなります。

集計結果 向いている可視化
月別売上 折れ線グラフ、棒グラフ
カテゴリ別売上 棒グラフ
都道府県別顧客数 棒グラフ、地図表現
CVRの段階 ファネル図

可視化では、見た人が次の判断をしやすいようにします。 「売上が落ちています」だけでなく、「どの月から、どのカテゴリで落ちているか」を示します。


6. 改善につなげる

分析の最後は、改善アクションにつなげることです。 たとえば、カテゴリ別に売上を確認します。

SELECT
            p.category,
            SUM(oi.quantity * oi.unit_price) AS sales,
            SUM(oi.quantity) AS quantity_sold
          FROM order_items AS oi
          JOIN products AS p
            ON oi.product_id = p.product_id
          GROUP BY p.category
          ORDER BY sales DESC;
          

もし特定カテゴリの販売数量が下がっていれば、在庫、価格、広告、商品ページなどを確認します。 SQLは答えを断定するものではなく、次に確認すべき仮説を作るための道具です。


7. 分析メモを残す

実務では、分析結果だけでなく、前提も残します。

残すこと
問い 2026年春以降に売上が下がった要因を知る
指標定義 完了注文の total_amount 合計を売上とする
対象期間 2026年1月〜6月
使用SQL 月別売上、カテゴリ別売上
解釈 注文件数は横ばい、平均注文金額が低下
次の行動 低下カテゴリの商品構成を確認する

メモを残すことで、後から同じ分析を再現しやすくなります。


8. 成果物を出す前のチェックリスト

SQLの結果を共有する前に、次の点を確認しましょう。

チェック項目 確認すること
指標定義 売上、CVR、購入者数などの定義を説明できるか
対象期間 期間の開始日と終了日が意図通りか
除外条件 キャンセル、返品、テストデータをどう扱ったか
粒度 1行が顧客、注文、日、カテゴリのどれか
件数 分母や対象件数が極端に少なくないか
比較軸 前月比、前年比、カテゴリ別など比較の軸が明確か
解釈 数字から言えることと言えないことを分けているか

このチェックを入れるだけで、分析の信頼性はかなり上がります。 特に、比率を出したときは分母の件数を必ず確認しましょう。


ミニ演習

次の依頼を、分析メモに分解してみましょう。

最近、売上が落ちている気がするので原因を見たい。

考える項目は次の通りです。

  1. どの期間を対象にするか。
  2. 売上をどう定義するか。
  3. まず見るべき指標は何か。
  4. どの軸で分解すると原因に近づけるか。
  5. SQLの結果をどのグラフで見せると伝わりやすいか。

この演習は、SQLを書く前の設計力を鍛えるためのものです。 実務では、この設計ができているほど、SQLの修正回数が減ります。


まとめ

手順 内容
問いを決める 何を判断したいかを明確にする
データを確認する 列、値、件数、欠損を見る
SQLで集計する 指標定義に沿って数値を出す
可視化する 変化や差を伝わりやすくする
改善する 次の仮説や行動につなげる

この章のキーメッセージ: 分析は、問いから始まり、SQL、可視化、改善へ進む一連の流れです。SQLはその中心にありますが、前提の確認と意思決定への接続まで含めて実務の分析です。


この章の確認

  1. 分析を始める前に問いを具体化する理由を説明してください。
  2. SQLを書く前に確認すべきデータの状態を2つ挙げてください。
  3. 月別売上を見るとき、売上以外に一緒に見るとよい指標は何ですか?
  4. 分析メモに残すべき情報を3つ挙げてください。

関連演習