SQL 解鎖 - 購物籃分析

DigNo Ape-avatar-img
發佈於SQL
更新於 發佈於 閱讀時間約 1 分鐘

購物籃分析(Basket Analysis)是一種常見的資料探勘技術,可以幫助企業了解哪些產品經常被消費者一起購買,從而優化產品組合和促銷策略。

表1是將公司每筆訂單內容轉換為訂單號-SKU的組合,請使用SQL來進行購物籃分析,找出最常被一起下訂的產品組合。

表1 - 訂單號-SKU的組合

表1 - 訂單號-SKU的組合

首先,我們將此匯入資料庫,建立一個名為 orders 的資料表,包含以下欄位:

  • order_id:訂單編號
  • sku:產品代號
產品組合

我們可以使用自我連接(self join)來找出每個訂單中所有可能的產品配對。

SELECT 
a.sku AS product_A,
b.sku AS product_B
FROM
orders a
JOIN
orders b
ON
a.order_id = b.order_id
AND a.sku < b.sku;

解析

  • 自我連接:將 orders 資料表與自身連接,條件是同一個 order_id。
  • 避免重複配對:通過 a.sku < b.sku 條件,避免了相同產品的配對和重複的組合。
  • 要注意這裡不能用distinct,因為我們要在下一個步驟使用group by算出頻率。
raw-image
組合頻率

根據上一個步驟的結果,統計每個產品組合出現次數,找出最常一起購買的產品配對。

WITH product_combinations AS (
SELECT
a.sku AS product_A,
b.sku AS product_B
FROM
orders a
JOIN
orders b
ON
a.order_id = b.order_id
AND a.sku < b.sku
)
SELECT
product_A,
product_B,
COUNT(*) AS frequency
FROM
product_combinations
GROUP BY
product_A,
product_B
ORDER BY
frequency DESC;

解析

  • CTE(Common Table Expression):生成 CTE,方便後續的查詢。
  • GROUP BY:以產品組合進行分組,統計每個組合的出現次數。
  • ORDER BY:以 frequency (頻率)進行降序排列,頻率最高的組合會排在最前面。
  • 從下表可以知道,A003和A004最常被一起下單,共5次。
raw-image

*上述的資料表和欄位我們皆以英文來撰寫以符合程式碼的特性,若覺得閱讀較為困難我們也有附上一個中文的版本供您參考和練習。

WITH 產品組合 AS (
SELECT
a.產品代號 AS 產品_A,
b.產品代號 AS 產品_B
FROM
訂單 a
JOIN
訂單 b ON a.訂單號 = b.訂單號
WHERE
a.產品代號 < b.產品代號
)
SELECT
產品_A,
產品_B,
COUNT(*) AS 頻率
FROM
產品組合
GROUP BY
產品_A,
產品_B
ORDER BY
頻率 DESC;
結論

通過上述步驟,使用 SQL 進行了購物籃分析,找出了最常一起購買的產品組合以:

  • 優化產品組合:根據消費者行為調整產品陳列和組合。
  • 制定營銷策略:針對高頻組合推出促銷活動,提升銷售額。
  • 提升客戶滿意度:提供更貼合客戶需求的產品建議。

遵循著我們上述的思考脈絡,希望能對您思考這類問題有所助益,也謝謝您撥冗完食。這些內容是根據我過去在外商的經驗,非常歡迎業界先進留言與我交流,我也會不定期補充我的觀點,也歡迎Follow我的Threads,持續都會有這類問題討論和生產力提升的點子喔!

留言
avatar-img
留言分享你的想法!
avatar-img
DigNo Ape 數遊原人
54會員
138內容數
我們秉持著從原人進化的精神,不斷追求智慧的累積和工具的運用來提升生產力。我們相信,每一個成員都擁有無限的潛力,透過學習和實踐,不斷成長和進步。
DigNo Ape 數遊原人的其他內容
2025/02/12
請以口語、白話形式解析以下SQL程式碼並描繪你認為的原資料表([Database].[Schema].[Table] )結構樣貌。 SELECT A.[Business_Unit], A.[Order_Number] , SUM([Sales_Units]) as [Sales_Uni
Thumbnail
2025/02/12
請以口語、白話形式解析以下SQL程式碼並描繪你認為的原資料表([Database].[Schema].[Table] )結構樣貌。 SELECT A.[Business_Unit], A.[Order_Number] , SUM([Sales_Units]) as [Sales_Uni
Thumbnail
2024/11/13
ABC 分析 ABC分析(ABC Analysis)是一種基於80/20的分類原則,常用於庫存管理、供應鏈分析和資源分配中。它將產品或項目按其相對重要性分為A、B 和 C三個類別。其目的是協助企業專注於最重要的項目,以提高效率和降低成本。
Thumbnail
2024/11/13
ABC 分析 ABC分析(ABC Analysis)是一種基於80/20的分類原則,常用於庫存管理、供應鏈分析和資源分配中。它將產品或項目按其相對重要性分為A、B 和 C三個類別。其目的是協助企業專注於最重要的項目,以提高效率和降低成本。
Thumbnail
2024/08/16
假設公司有5個配送中心(DC),如下圖,但不是所有商品都存放在所有的配送中心,舉例來說某辦公椅僅能存放在DC3和DC4,因此邏輯上美國東岸的需求會由DC3所配送(距離較近),西岸的需求會由DC4所配送。請根據上述邏輯使用SQL來模擬這商品在各地的需求會如何被配送、從哪個配送中心配送?
2024/08/16
假設公司有5個配送中心(DC),如下圖,但不是所有商品都存放在所有的配送中心,舉例來說某辦公椅僅能存放在DC3和DC4,因此邏輯上美國東岸的需求會由DC3所配送(距離較近),西岸的需求會由DC4所配送。請根據上述邏輯使用SQL來模擬這商品在各地的需求會如何被配送、從哪個配送中心配送?
看更多
你可能也想看
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
※ 語法 SELECT select_list FROM table_name​ ※ 解析順序 From:從哪裡拿? SELECT:要 "拿什麼" 資料? ※ 使用場景: Single column(單一欄位): Multiple column(多個欄位): All colu
Thumbnail
※ 語法 SELECT select_list FROM table_name​ ※ 解析順序 From:從哪裡拿? SELECT:要 "拿什麼" 資料? ※ 使用場景: Single column(單一欄位): Multiple column(多個欄位): All colu
Thumbnail
利用文字紀錄,明確寫下自己的採購項目......
Thumbnail
利用文字紀錄,明確寫下自己的採購項目......
Thumbnail
網友提出的一個問題,如影片。 當輸入關鍵字+數量,例:起司+10 下拉式選單自動產生有關起司的產品的清單供選擇並且帶出規格、數量、金額與小計 《為什麼要做這個功能呢?》 當資料很多的時候,如果每筆資料都是用篩選的方式來找出想要的產品,可能會耗掉非常多的時間。 所以如果可以藉由關鍵字,
Thumbnail
網友提出的一個問題,如影片。 當輸入關鍵字+數量,例:起司+10 下拉式選單自動產生有關起司的產品的清單供選擇並且帶出規格、數量、金額與小計 《為什麼要做這個功能呢?》 當資料很多的時候,如果每筆資料都是用篩選的方式來找出想要的產品,可能會耗掉非常多的時間。 所以如果可以藉由關鍵字,
Thumbnail
在當今數位化的商業環境中,新商品開發已經不再僅依賴傳統的市場調查和直覺決策。隨著大數據和人工智慧技術的迅速發展,數據驅動的開發策略成為推動創新和保持市場競爭力的關鍵。本文將探討如何利用數據驅動的方法來優化新商品開發流程,從而更有效地滿足消費者需求,提高產品成功率。
Thumbnail
在當今數位化的商業環境中,新商品開發已經不再僅依賴傳統的市場調查和直覺決策。隨著大數據和人工智慧技術的迅速發展,數據驅動的開發策略成為推動創新和保持市場競爭力的關鍵。本文將探討如何利用數據驅動的方法來優化新商品開發流程,從而更有效地滿足消費者需求,提高產品成功率。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News