SQL 解鎖 - 聚合函數

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

我們先前介紹了SQL中如何根據指定的條件來篩選資料,僅返回符合條件的結果。本篇我們來討論於MS SQL Server 聚合函數(Aggregate Functions) ,用於對數據進行匯總計算,適合分析銷售總額、平均利潤等。

以下我們會使用Tableau 的Superstore 銷售分析的範例資料集,包含訂單、客戶、產品和地區資訊。根據線上資源,常見欄位包括 Order ID、Customer ID、Order Date、Segment、Region、Product ID、Category、Sub-Category、Sales、Quantity、Discount 和 Profit等。

聚合函數
SUM():計算總和
SELECT SUM([Sales]) AS [TotalSales]
FROM [dbo].[Superstore_Orders];


AVG():計算平均

AVG() 用於計算欄位的平均值,例如計算每筆資料每列平均銷售額

SELECT AVG([Sales]) AS [AvgSales]
FROM [dbo].[Superstore_Orders];


COUNT():計算筆數
  1. COUNT(*)計算所有資料筆數
SELECT COUNT(*) AS [RowCounts] 
FROM [dbo].[Superstore_Orders];

此結果回傳9994筆資料。


  1. COUNT(欄位):計算該欄位非空值的筆數
SELECT COUNT([Postal Code]) [Postal_Code_Counts]
FROM [dbo].[Superstore_Orders];

此結果回傳9983筆資料,並提供一個資訊,並非所有資料筆數的[Postal Code]欄位皆為非空值、有11筆資料為空值(null)。


  1. COUNT(DISTINCT 欄位):計算不重複的值
SELECT COUNT(DISTINCT[Postal Code]) [Unique_Postal_Code_Counts]
FROM [dbo].[Superstore_Orders]

此結果回傳630筆資料。


MAX() & MIN():最大/最小值

查詢最高銷售額的訂單

SELECT MAX([Sales]) AS MaxSales
FROM [dbo].[Superstore_Orders];


STDEV() :計算銷售額的標準差
SELECT STDEV([Sales]) AS [Sales_StdDev] 
FROM [dbo].[Superstore_Orders];


VAR() 計算利潤的變異數
SELECT VAR([Profit]) AS [Profit_Variance] 
FROM [dbo].[Superstore_Orders];


結合多個聚合函數: 計算總銷售額、平均數量和最大利潤
SELECT SUM([Sales]) as [Total_Sales],  
AVG([Quantity]) as [Avg_Quantity],
MAX([Profit]) as [Max_Profit]
FROM [dbo].[Superstore_Orders];


處理空值

上方提到的計算[Postal Code]筆數,若需要計算空值,可以搭配COALESCE()或ISNULL()轉為非空值再進行計算。

raw-image


搭配Where

當使用聚合函數與 WHERE 時,需特別注意 WHERE 在聚合前的角色, WHERE先篩選數據,然後聚合函數再對篩選後的數據進行計算。

計算標準運送方式的總銷售額

WHERE 子句先過濾 [Ship Mode] 為 'Standard Class' 的資料,然後 SUM 計算這些行的 Sales 總和。

SELECT SUM([Sales]) AS Total_Sales  
FROM [dbo].[Superstore_Orders]
WHERE [Ship Mode] = 'Standard Class';


計算 2018 年所有訂單的總數量
SELECT SUM([Quantity]) AS [Total_Quantity] 
FROM [dbo].[Superstore_Orders]
WHERE YEAR([Order Date]) = 2018;


計算辦公用品類別的不重複客戶數
SELECT COUNT(DISTINCT [Customer ID]) AS Unique_Customers  
FROM [dbo].[Superstore_Orders]
WHERE Category = 'Office Supplies';



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









留言
avatar-img
留言分享你的想法!
avatar-img
DigNo Ape 數遊原人
49會員
133內容數
我們秉持著從原人進化的精神,不斷追求智慧的累積和工具的運用來提升生產力。我們相信,每一個成員都擁有無限的潛力,透過學習和實踐,不斷成長和進步。
DigNo Ape 數遊原人的其他內容
2024/11/26
OVER() 子句是Window Function的核心組成部分,用於在查詢結果集中定義一個「窗口」,使聚合函數或排名函數能夠在不改變原始數據結構的情況下,對特定資料進行計算。常搭配PARTITION BY將數據劃分成多個分群(類似GROUP BY,但不改變資料的結構、粒度),
Thumbnail
2024/11/26
OVER() 子句是Window Function的核心組成部分,用於在查詢結果集中定義一個「窗口」,使聚合函數或排名函數能夠在不改變原始數據結構的情況下,對特定資料進行計算。常搭配PARTITION BY將數據劃分成多個分群(類似GROUP BY,但不改變資料的結構、粒度),
Thumbnail
2024/09/20
SQL 中的 Index 是什麼? 加了以後會有什麼影響? 想像你在讀一本厚厚的小說,裡面有幾百頁。如果你想要找到某個關鍵情節,比如「主角第一次登場的地方」,如果你沒有做任何標記,你可能得從頭到尾翻書,直到找到那一頁為止,這樣會花很多時間。 ▌Index 就像書籤一樣
2024/09/20
SQL 中的 Index 是什麼? 加了以後會有什麼影響? 想像你在讀一本厚厚的小說,裡面有幾百頁。如果你想要找到某個關鍵情節,比如「主角第一次登場的地方」,如果你沒有做任何標記,你可能得從頭到尾翻書,直到找到那一頁為止,這樣會花很多時間。 ▌Index 就像書籤一樣
2024/09/19
上一篇我們介紹了SQL基本架構和語法,如何用簡單的SELECT 和 FROM 撈取資料。本篇我們來討論,如何根據指定的條件來篩選資料,僅返回符合條件的結果。
Thumbnail
2024/09/19
上一篇我們介紹了SQL基本架構和語法,如何用簡單的SELECT 和 FROM 撈取資料。本篇我們來討論,如何根據指定的條件來篩選資料,僅返回符合條件的結果。
Thumbnail
看更多
你可能也想看
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
商業簡報不僅僅是呈現數據,更需要深入瞭解數據分析及有效的工具運用。本文探討於Excel中使用不同函數來改善數據處理效率,包括IF、IFS、VLOOKUP、XLOOKUP及INDEX與MATCH的結合,幫助商業人士更好地從數據中提取洞見,助力業務增值,學習優化數據分析過程,讓您的商業簡報更具影響力。
Thumbnail
商業簡報不僅僅是呈現數據,更需要深入瞭解數據分析及有效的工具運用。本文探討於Excel中使用不同函數來改善數據處理效率,包括IF、IFS、VLOOKUP、XLOOKUP及INDEX與MATCH的結合,幫助商業人士更好地從數據中提取洞見,助力業務增值,學習優化數據分析過程,讓您的商業簡報更具影響力。
Thumbnail
在資料分析過程中,透過衡量變數之間的線性或非線性關係,能有效探索數據集,篩選出重要特徵,並進行預測建模。本文介紹瞭如何理解數據、使用相關矩陣找出變數關聯性,以及利用互資訊評估變數之間的依賴程度,幫助資料科學家在建模過程中選擇適當的變數,提升模型效果。
Thumbnail
在資料分析過程中,透過衡量變數之間的線性或非線性關係,能有效探索數據集,篩選出重要特徵,並進行預測建模。本文介紹瞭如何理解數據、使用相關矩陣找出變數關聯性,以及利用互資訊評估變數之間的依賴程度,幫助資料科學家在建模過程中選擇適當的變數,提升模型效果。
Thumbnail
※ 何時該使用 JOIN? JOIN 使用的時機是:當你需要同時查詢一張以上的資料表的時候。 ※ SQL有哪些TABLE JOIN的方式? INNER JOIN LEFT JOIN RIGHT JOIN SELF JOIN ※ 使用 JOIN 的時候,我們需要考慮到: 我要使用哪一種
Thumbnail
※ 何時該使用 JOIN? JOIN 使用的時機是:當你需要同時查詢一張以上的資料表的時候。 ※ SQL有哪些TABLE JOIN的方式? INNER JOIN LEFT JOIN RIGHT JOIN SELF JOIN ※ 使用 JOIN 的時候,我們需要考慮到: 我要使用哪一種
Thumbnail
※ GROUP BY 用於將數據表中的數據按照一個或多個列進行分組。例如在處理一個表格的資料時,可以指定欄位,一個或是多個,然後把將其視為ID進行分組處理。 ※ 語法 SELECT column1, column2, ..., aggregate_function(column) FROM
Thumbnail
※ GROUP BY 用於將數據表中的數據按照一個或多個列進行分組。例如在處理一個表格的資料時,可以指定欄位,一個或是多個,然後把將其視為ID進行分組處理。 ※ 語法 SELECT column1, column2, ..., aggregate_function(column) FROM
Thumbnail
※ 什麼是WHERE? 使用 WHERE來設定條件,可以幫助我們縮小查詢結果的範圍,取得想要的結果。 ※ 語法: ※ 解析順序: From:先看是哪一張table→table裡面符合Where指定條件的record→再看Select指定的是那些欄位→再根據那個欄位進行排序。 ※ 使⽤⽅
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
※ 語法 SELECT select_list FROM table_name​ ※ 解析順序 From:從哪裡拿? SELECT:要 "拿什麼" 資料? ※ 使用場景: Single column(單一欄位): Multiple column(多個欄位): All colu
Thumbnail
在進行SQL查詢邏輯更改時,需要適當地使用SubQuery和join來達到新的排序需求。本文將介紹原本的撈取邏輯、需求以及如何使用SubQuery來解決新的排序需求。
Thumbnail
在進行SQL查詢邏輯更改時,需要適當地使用SubQuery和join來達到新的排序需求。本文將介紹原本的撈取邏輯、需求以及如何使用SubQuery來解決新的排序需求。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News