跳到主要內容
Cypher's Practical Coding
正在準備工作環境...

銷售漏斗分析

67% 的人加了購物車但沒結帳。這個數字聽起來很嚇人,但更嚇人的是——你不知道他們卡在哪一步。是加購物車之後就走了?還是填了地址但在付款頁放棄?漏斗分析就是幫你把每一步攤開來看。

  • 漏斗 = 把用戶旅程拆成多個步驟,看每步有多少人留下
  • 轉換率 = 這一步的人數 / 上一步的人數
  • 流失率 = 1 - 轉換率(在這一步離開的比例)

建立漏斗的基本架構

假設我們的電商有一張 events 表,記錄用戶行為:

步驟event_type說明
1view瀏覽商品頁
2add_to_cart加入購物車
3checkout進入結帳頁
4payment送出付款
5completed訂單完成

用 COUNT + CASE WHEN 做漏斗

如果沒有 events 表,我們可以用 orders 表的 status 欄位模擬漏斗:

計算每步轉換率

用 CTE 先算出每步人數,再算轉換率:

用 UNION ALL 做直式漏斗(更好看)

橫式漏斗一整排數字不好讀,改成直式每步一列:

重點:

  • FIRST_VALUE 取第一步的人數,算整體轉換率
  • LAG 取上一步的人數,算逐步轉換率

按月份拆分漏斗

看漏斗隨時間有沒有改善:

AI 協作:學了這個,跟 AI 怎麼配合?

漏斗分析的難點不在 SQL,而在於「怎麼定義每一步」。AI 不知道你公司的業務流程。

你的人類優勢:

  • 你知道公司的漏斗步驟是什麼(每家不同)
  • 你能判斷某步驟的流失是正常還是異常
  • 你能把漏斗數字轉化成行動建議(例如:付款頁流失高 → 檢查金流串接)

可以這樣跟 AI 說:

我們的訂單漏斗是:建立訂單 → 結帳 → 付款 → 完成。幫我用 orders 表算每步的人數和轉換率,用直式呈現,並按月份拆分看趨勢。

練習題

互動示範

DEMO 1可以修改程式碼試玩
DEMO 2可以修改程式碼試玩
DEMO 3可以修改程式碼試玩
DEMO 4可以修改程式碼試玩

挑戰任務

Task 1

用 orders 表統計:總訂單數、已完成訂單數、完成率百分比(顯示 total_orders、completed_orders、completion_rate)

Task 2

按月份統計訂單完成率(顯示 month、total_orders、completed_orders、completion_rate),按月份排序

Task 3

做一個直式漏斗:用 UNION ALL 列出四個步驟(所有訂單、非取消、待處理+完成、已完成),顯示 step_name 和 user_count

BackNext Lesson →