CodeGym /課程 /SQL SELF /分析函式入門

分析函式入門

SQL SELF
等級 59, 課堂 0
開放

我們先從一個生活中的簡單例子開始。想像你是咖啡店老闆。每天都有客人來點單,你把這些資料都記錄下來。過一陣子你想知道:哪些飲料最受歡迎?過去三個月的平均消費是多少?哪幾天的營收最高?

這些問題就是分析的例子。分析本身就是把「一堆資料」變成有用資訊。而在資料庫裡做分析,其實不是什麼魔法,而是一組工具,讓你能回答這些問題。

分析常常會解決像這樣的問題:

  • 分析關鍵指標(比如營收、平均消費、訂單數量)。
  • 做報表:表格、圖表、圓餅圖。
  • 監控趨勢:指標隨時間怎麼變化。
  • 比較資料(比如不同地區之間)。

這對於做出有根據的商業決策、優化流程,甚至預測未來結果都很重要。

PL/pgSQL 在分析裡的角色

現在我們知道為什麼要做分析了,那為什麼要用 PL/pgSQL 呢?不是可以把資料匯出到 Excel 算一算就好嗎?對吧?

PL/pgSQL 可以讓你:

  • 自動化計算。幹嘛每次都手動做一樣的事,能自動化就自動化啊!
  • 在資料庫端處理大量資料。在伺服器端產生報表,就不用把一堆資料傳到 client app。
  • 寫出強大的查詢又不會太吃資源。大表也能又快又有效率地處理。

舉個例子:你可以每天自動產生銷售報表,直接存到資料表裡,完全不用手動搞。

用程序自動化分析的好處

手動分析流程:

  1. 從資料庫拿資料。
  2. 在某個表格軟體裡處理。
  3. 存下結果。用 PL/pgSQL 自動化:
  4. 只要寫一次程序。
  5. 排程自動跑。
  6. 爽爽看結果。

完全是不同等級的方便對吧?:)

分析函式能解決哪些問題?

這裡有幾個可以用分析函式解決的問題。這些例子會讓你知道分析函式不是什麼抽象的東西,而是超實用的工具。

計算關鍵指標

關鍵指標就是能幫你評估生意狀況的數字。比如:

  • 平均消費:客人平均花多少錢。
  • 某段時間內的訂單總數。
  • 各商品類別的銷售收入。

計算平均消費的 SQL 查詢範例:

SELECT 
    SUM(order_amount) / COUNT(*) AS average_order
FROM 
    orders
WHERE 
    order_date > CURRENT_DATE - INTERVAL '3 months';

建立時間序列和趨勢

假設你想知道每天的銷售怎麼變化。你可以依日期彙總資料,建立時間序列。

SELECT
    order_date, 
    SUM(order_amount) AS daily_sales
FROM 
    orders
GROUP BY 
    order_date
ORDER BY 
    order_date;

比較不同時期的資料

現在假設你想比較十月和九月的營收:

SELECT 
    EXTRACT(MONTH FROM order_date) AS month, 
    SUM(order_amount) AS total_sales
FROM 
    orders
WHERE 
    order_date BETWEEN '2023-09-01' AND '2023-10-31'
GROUP BY 
    EXTRACT(MONTH FROM order_date);

這種做法可以讓你下結論:這兩個月有什麼變化?為什麼九月比較好?還是其實十月更強?

實際生活中怎麼用?

在真實工作裡,分析會用在這些場景:

  1. 行銷:搞清楚哪些管道帶來最多客人。
  2. 財務:算收入、損失、還有預測。
  3. 軟體開發:分析 app 效能。
  4. 遊戲產業:分析玩家行為,做個人化推薦。

現在你已經知道分析函式有什麼用了,接下來的課我們會深入技術細節,比如怎麼用 window function 跟 aggregate function 來做報表。現在先想想:你想分析哪些指標?這對你的專案會有什麼幫助?

2
任務
SQL SELF, 等級 59, 課堂 0
上鎖
每月收入
每月收入
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION