正在準備工作環境...
時間序列與趨勢分析
這個月營收到底是成長還是衰退?老闆看的是趨勢,不是單一數字。但原始日營收上上下下很難看出方向,你需要的是移動平均來抹平波動,和 MoM / YoY 成長率來量化變化幅度。
- 移動平均 = 取前 N 天的平均值,抹平短期波動
- MoM(Month over Month) = 本月 vs 上月的成長率
- YoY(Year over Year) = 本月 vs 去年同月的成長率
日營收趨勢
先看每天的營收:
7 日移動平均
用窗口函數的 ROWS BETWEEN 算前 7 天的平均:
重點:
ROWS BETWEEN 6 PRECEDING AND CURRENT ROW= 當天 + 前 6 天 = 共 7 天- 前 6 天不滿的話,就用有的天數算平均(不會報錯)
- 移動平均線比原始數據更能看出趨勢方向
月營收與 MoM 成長率
解讀:
LAG(revenue)取上個月的營收- MoM 成長率 = (本月 - 上月) / 上月 x 100
- 第一個月沒有上月資料,成長率會是 NULL
週營收趨勢
有時候日營收太細、月營收太粗,週是個好的中間粒度:
同時看訂單數和客單價趨勢
營收 = 訂單數 x 客單價。營收下降是因為訂單變少,還是客單價變低?
AI 協作:學了這個,跟 AI 怎麼配合?
時間序列分析的 SQL 模式很固定(GROUP BY 時間 + 窗口函數),AI 可以快速套用。但解讀數字需要你。
你的人類優勢:
- 你知道哪個月有促銷、節日效應
- 你能判斷成長率的波動是正常季節性還是異常
- 你能決定要看日/週/月哪個粒度
可以這樣跟 AI 說:
幫我算每月營收的 MoM 成長率,同時拆解訂單數和客單價的 MoM 變化,看營收成長是靠訂單量還是客單價。用 orders 表,只算 completed。
練習題
互動示範
DEMO 1可以修改程式碼試玩
DEMO 2可以修改程式碼試玩
DEMO 3可以修改程式碼試玩
DEMO 4可以修改程式碼試玩
DEMO 5可以修改程式碼試玩
挑戰任務
Task 1
算出每天的營收和 7 日移動平均(顯示 order_date、daily_revenue、ma_7day),只算 completed 訂單,按日期排序
Task 2
算出每月營收和 MoM 成長率百分比(顯示 month、revenue、mom_growth_pct),只算 completed 訂單,按月份排序
Task 3
拆解每月的訂單數和平均客單價(顯示 month、order_count、avg_order_value),只算 completed,按月份排序
← BackNext Lesson →