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

SQL 資料準備

BI 工具再強大,資料沒準備好也沒用。你在 Looker Studio 拉了一張折線圖,結果資料有空值、粒度不對、欄位名稱亂七八糟——最後花的時間比手動做 Excel 還多。

  • 資料準備 = 用 SQL 把原始資料整理成 BI 工具能直接吃的格式
  • 這是 BI 流程中最花時間的一步(通常佔 60-80%)
  • 準備得好,後面拉儀表板就是拖拖拉拉的事

寬表 vs 窄表

BI 工具偏好的格式取決於你要做什麼圖表:

格式結構適合場景範例
寬表每個指標一欄KPI 卡片、多指標比較date, revenue, orders, aov
窄表指標名稱和值各一欄篩選器、動態圖表date, metric_name, metric_value

大多數情況下,BI 工具偏好寬表——一行就是一個觀察單位(一天、一個客戶、一個商品),每欄是一個指標。

維度 vs 指標

儀表板上的每個欄位不是維度就是指標

類型說明範例在 SQL 中
維度(Dimension)分類、篩選用的欄位日期、管道、類別、地區GROUP BY 的欄位
指標(Metric)要衡量的數字營收、訂單數、轉換率SUM / COUNT / AVG 的結果

口訣:維度切資料,指標算資料。

日期維度表

專業的 BI 系統都有一張「日期維度表」,讓你可以按年、季、月、週、星期幾來分析:

資料粒度

粒度(Granularity) = 每一行代表什麼層級的資料。

粒度每行代表行數適合分析
訂單明細一筆訂單最多個案追蹤
一天適中趨勢、異常偵測
一週短期趨勢
一個月最少長期趨勢、KPI 報表

粒度越細,資料量越大,圖表越雜。儀表板的第一頁通常用「月」或「週」,下鑽頁面才用「日」。

動手做:準備一張寬表給 BI 用

目標:做一張「日期 × 管道 × 指標」的寬表,每一行是某天某個管道的匯總數據。

先看基本的日營收寬表:

加上商品類別維度,做成「日期 × 類別」的寬表:

用 CASE WHEN 把類別攤成欄位(交叉表/樞紐表):

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

資料準備是最適合請 AI 幫忙的環節——重複性高、邏輯明確、容易驗證。

你的人類優勢:

  • 你知道 BI 工具需要什麼格式(寬表還是窄表?粒度到日還是月?)
  • 你能判斷哪些維度是業務上有意義的
  • 你能檢查準備好的資料是否合理(數字對不對?有沒有遺漏?)

可以這樣跟 AI 說:

我要做一張 Looker Studio 的日營收儀表板,資料來源是 orders 表和 products 表。幫我寫一個 SQL,輸出格式是每天一行,欄位要有:日期、訂單數、不重複客戶數、總營收、客單價。只算已完成的訂單。

練習題

互動示範

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

挑戰任務

Task 1

準備日營收寬表:每天的訂單數、不重複客戶數、營收、客單價(顯示 order_date、order_count、unique_customers、revenue、aov),只算 completed,按日期排序

Task 2

準備「日期 × 類別」營收表:每天每個商品類別的銷售數量和營收(顯示 order_date、category、items_sold、revenue),只算 completed,按日期和類別排序

BackNext Lesson →