SQL 解鎖 - 程式碼解析 1

更新於 發佈於 閱讀時間約 7 分鐘
raw-image


請以口語、白話形式解析以下SQL程式碼並描繪你認為的原資料表([Database].[Schema].[Table] )結構樣貌。
SELECT  
A.[Business_Unit],
A.[Order_Number] ,
SUM([Sales_Units]) as [Sales_Units],

SUM([Delivery_Expense_Carrier_Mode_1]) as [Delivery_Expense_Carrier_Mode_1],
SUM([Delivery_Expense_Carrier_Mode_2]) as [Delivery_Expense_Carrier_Mode_2],
SUM([Delivery_Expense_Carrier_Mode_3]) as [Delivery_Expense_Carrier_Mode_3],

SUM(CASE WHEN [Fulfillment_Type] IN ('Fulfillment_Center') THEN [Sales_Units] ELSE 0 END) AS [Sales_Units_Fullfillment_Center],
SUM(CASE WHEN [Fulfillment_Type] IN ('Fulfillment_Center') THEN [Delivery_Expense_Total] ELSE 0 END) AS [Delivery_Expense_Fullfillment_Center],

SUM(CASE WHEN [Fulfillment_Type] IN ('Vendor_Dropship') THEN [Sales_Units] ELSE 0 END) AS [Sales_Units_Vendor_Dropship],
SUM(CASE WHEN [Fulfillment_Type] IN ('Vendor_Dropship') THEN [Delivery_Expense_Total] ELSE 0 END) AS [Delivery_Expense_Vendor_Dropship],

SUM(CASE WHEN ([Delivery_Expense_Carrier_Mode_1] < 0) THEN [Sales_Units] ELSE 0 END) AS [Sales_Units_Mode_1],
SUM(CASE WHEN ([Delivery_Expense_Carrier_Mode_1] < 0) THEN [Delivery_Expense_Total] ELSE 0 END) AS [Delivery_Expense_Mode_1],

SUM(CASE WHEN ([Delivery_Expense_Carrier_Mode_2] < 0) THEN [Sales_Units] ELSE 0 END) AS [Sales_Units_Mode_2],
SUM(CASE WHEN ([Delivery_Expense_Carrier_Mode_2] < 0) THEN [Delivery_Expense_Total] ELSE 0 END) AS [Delivery_Expense_Mode_2],

SUM(CASE WHEN ([Delivery_Expense_Carrier_Mode_3] < 0) THEN [Sales_Units] ELSE 0 END) AS [Sales_Units_Mode_3],
SUM(CASE WHEN ([Delivery_Expense_Carrier_Mode_3] < 0) THEN [Delivery_Expense_Total] ELSE 0 END) AS [Delivery_Expense_Mode_3],

FROM [Database].[Schema].[Table] AS A

WHERE [Fiscal_Year] = 2024
GROUP BY
A.[Business_Unit],
A.[Order_Number] ;



閱讀題目分隔區









參考解析

這段 SQL 程式碼的目的是撈取、分析每個業務單位的每筆訂單銷售數量&物流運費狀況,並根據不同的配送類型、渠道,進行彙總統計。

以下是詳細解釋 -

▌篩選條件 & 資料粒度

從資料表中篩選出「2024財務年度」的訂單數據,並以業務單位 (Business Unit) 和 訂單編號(Order Number) 層級呈現。

▌統計欄位

- 總運費 (Delivery Expense):將運費按三種不同的配送營運商 (Carrier Mode 1, 2, 3) 分別統計。

- 總銷售量 (Sales Units):計算每筆訂單的銷售數量總和。

▌分類統計

除了總體數據外,還對配送類型、渠道與特殊情況進行了細分統計

1. 按配送渠道分類

- 由物流中心(Fulfillment Center)端出貨 的銷售量和總運費。

- 由廠商(Vendor Dropship) 端出貨的銷售量和總運費。

2. 按物流商(模式)分類 - 原表結構測: 原表可能為訂單

-產品(或更細)層級,每個產品可能由不同物流商以不同模式配送,且使用了某一 物流 商或模式就無法使用其他物流商或模式。



謝謝您花時間將此篇文章讀完,若覺得對您有幫助可以幫忙按個讚、分享來或是珍藏喔!也歡迎Follow我的ThreadsFB,持續追蹤生產力工具、商業分析、商業英文的實用範例,提升自己的職場力喔!










avatar-img
39會員
81內容數
我們秉持著從原人進化的精神,不斷追求智慧的累積和工具的運用來提升生產力。我們相信,每一個成員都擁有無限的潛力,透過學習和實踐,不斷成長和進步。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
DigNo Ape 數遊原人 的其他內容
ABC 分析 ABC分析(ABC Analysis)是一種基於80/20的分類原則,常用於庫存管理、供應鏈分析和資源分配中。它將產品或項目按其相對重要性分為A、B 和 C三個類別。其目的是協助企業專注於最重要的項目,以提高效率和降低成本。
購物籃分析(Basket Analysis)是一種常見的資料探勘技術,可以幫助企業了解哪些產品經常被消費者一起購買,從而優化產品組合和促銷策略。 表1是將公司每筆訂單內容轉換為訂單號-SKU的組合,請使用SQL來進行購物籃分析,找出最常被一起下訂的產品組合。
假設公司有5個配送中心(DC),如下圖,但不是所有商品都存放在所有的配送中心,舉例來說某辦公椅僅能存放在DC3和DC4,因此邏輯上美國東岸的需求會由DC3所配送(距離較近),西岸的需求會由DC4所配送。請根據上述邏輯使用SQL來模擬這商品在各地的需求會如何被配送、從哪個配送中心配送?
處理美國地區 ZIP Code 郵遞區號相關的資料問題應該是許多外企資料分析師每天都會處理的問題,ZIP Code 通常是在做區域相關分析的最小、訂單能記錄到最細的標準化單位,引此了解一些處理ZIP Code的眉角對於資料處理、分析、視覺化,以至於建構模型是非常重要
ABC 分析 ABC分析(ABC Analysis)是一種基於80/20的分類原則,常用於庫存管理、供應鏈分析和資源分配中。它將產品或項目按其相對重要性分為A、B 和 C三個類別。其目的是協助企業專注於最重要的項目,以提高效率和降低成本。
購物籃分析(Basket Analysis)是一種常見的資料探勘技術,可以幫助企業了解哪些產品經常被消費者一起購買,從而優化產品組合和促銷策略。 表1是將公司每筆訂單內容轉換為訂單號-SKU的組合,請使用SQL來進行購物籃分析,找出最常被一起下訂的產品組合。
假設公司有5個配送中心(DC),如下圖,但不是所有商品都存放在所有的配送中心,舉例來說某辦公椅僅能存放在DC3和DC4,因此邏輯上美國東岸的需求會由DC3所配送(距離較近),西岸的需求會由DC4所配送。請根據上述邏輯使用SQL來模擬這商品在各地的需求會如何被配送、從哪個配送中心配送?
處理美國地區 ZIP Code 郵遞區號相關的資料問題應該是許多外企資料分析師每天都會處理的問題,ZIP Code 通常是在做區域相關分析的最小、訂單能記錄到最細的標準化單位,引此了解一些處理ZIP Code的眉角對於資料處理、分析、視覺化,以至於建構模型是非常重要
你可能也想看
Google News 追蹤
Thumbnail
已經存在在table裡面的那些record做更新。 ※ 語法 UPDATE [LOW_PRIORITY] [IGNORE] table_name SET column_name1 = expr1, column_name2 = expr2, … [WHERE
Thumbnail
※ 把record加到table有兩種方式: VALUES • SELECT ※ 語法 INSERT INTO VALUES 語法: Record 代表一組值的集合,每個值對應到表格中的一個欄位(column)。 INSERT INTO 語法用來指定要插入資料的表格。 需要提供一個
Thumbnail
※ GROUP BY 用於將數據表中的數據按照一個或多個列進行分組。例如在處理一個表格的資料時,可以指定欄位,一個或是多個,然後把將其視為ID進行分組處理。 ※ 語法 SELECT column1, column2, ..., aggregate_function(column) FROM
Thumbnail
※ 什麼是WHERE? 使用 WHERE來設定條件,可以幫助我們縮小查詢結果的範圍,取得想要的結果。 ※ 語法: ※ 解析順序: From:先看是哪一張table→table裡面符合Where指定條件的record→再看Select指定的是那些欄位→再根據那個欄位進行排序。 ※ 使⽤⽅
Thumbnail
※ 語法 SELECT select_list FROM table_name​ ※ 解析順序 From:從哪裡拿? SELECT:要 "拿什麼" 資料? ※ 使用場景: Single column(單一欄位): Multiple column(多個欄位): All colu
Thumbnail
🎗️本次主題成果展示:人力資訊分析 上集回顧 🔗EXCEL儀表板 | 人力資訊分析儀表板 #1 | 上手等級:入門🔗 🔗EXCEL儀表板 | 人力資訊分析儀表板 #2 | 上手等級:入門🔗 🔗EXCEL儀表板 | 人力資訊分析儀表板 #3 | 上手等級:入門🔗
Thumbnail
在這個星光閃爍的數據宇宙中,SQL是一把鑰匙,開啟了通往知識寶庫的大門。想像一下,每一條SELECT語句都像是一段魔法咒語,喚醒沉睡在數據庫深處的信息。今天,我們就要一起踏上這段探秘之旅,將揭開SQL基本查詢指令的神秘面紗,學習如何巧妙地與數據對話。
Thumbnail
題目敘述 題目會給我們兩張資料表,第一張是Sales,第二張是Product。 第一張是Sales表格,裡面分別有sale_id、 product_id、year、quantity、price等欄位。其中(sale_id、 product_id)做為複合主鍵Primary key Table:
Thumbnail
已經存在在table裡面的那些record做更新。 ※ 語法 UPDATE [LOW_PRIORITY] [IGNORE] table_name SET column_name1 = expr1, column_name2 = expr2, … [WHERE
Thumbnail
※ 把record加到table有兩種方式: VALUES • SELECT ※ 語法 INSERT INTO VALUES 語法: Record 代表一組值的集合,每個值對應到表格中的一個欄位(column)。 INSERT INTO 語法用來指定要插入資料的表格。 需要提供一個
Thumbnail
※ GROUP BY 用於將數據表中的數據按照一個或多個列進行分組。例如在處理一個表格的資料時,可以指定欄位,一個或是多個,然後把將其視為ID進行分組處理。 ※ 語法 SELECT column1, column2, ..., aggregate_function(column) FROM
Thumbnail
※ 什麼是WHERE? 使用 WHERE來設定條件,可以幫助我們縮小查詢結果的範圍,取得想要的結果。 ※ 語法: ※ 解析順序: From:先看是哪一張table→table裡面符合Where指定條件的record→再看Select指定的是那些欄位→再根據那個欄位進行排序。 ※ 使⽤⽅
Thumbnail
※ 語法 SELECT select_list FROM table_name​ ※ 解析順序 From:從哪裡拿? SELECT:要 "拿什麼" 資料? ※ 使用場景: Single column(單一欄位): Multiple column(多個欄位): All colu
Thumbnail
🎗️本次主題成果展示:人力資訊分析 上集回顧 🔗EXCEL儀表板 | 人力資訊分析儀表板 #1 | 上手等級:入門🔗 🔗EXCEL儀表板 | 人力資訊分析儀表板 #2 | 上手等級:入門🔗 🔗EXCEL儀表板 | 人力資訊分析儀表板 #3 | 上手等級:入門🔗
Thumbnail
在這個星光閃爍的數據宇宙中,SQL是一把鑰匙,開啟了通往知識寶庫的大門。想像一下,每一條SELECT語句都像是一段魔法咒語,喚醒沉睡在數據庫深處的信息。今天,我們就要一起踏上這段探秘之旅,將揭開SQL基本查詢指令的神秘面紗,學習如何巧妙地與數據對話。
Thumbnail
題目敘述 題目會給我們兩張資料表,第一張是Sales,第二張是Product。 第一張是Sales表格,裡面分別有sale_id、 product_id、year、quantity、price等欄位。其中(sale_id、 product_id)做為複合主鍵Primary key Table: