SQL 中的 GROUP BY 子句用於根據一列或多列將資料組織成群組。它通常與聚合函數(例如 SUM、COUNT、AVG、MAX、MIN)一起使用,對每組資料執行計算。
SELECT column1, aggregate_function(column2) FROM table_name GROUP BY column1;
分組資料:
指定列中具有相同值的行將分組在一起。
聚合函數:
將行分組後,將套用聚合函數來計算每個組的單一結果。
Product | Category | Sales_Amount | Region |
---|---|---|---|
Laptop | Electronics | 1000 | North |
Phone | Electronics | 500 | South |
TV | Electronics | 700 | North |
Desk | Furniture | 200 | East |
Chair | Furniture | 150 | East |
SELECT Category, SUM(Sales_Amount) AS Total_Sales FROM sales GROUP BY Category;
Category | Total_Sales |
---|---|
Electronics | 2200 |
Furniture | 350 |
SELECT Category, COUNT(Product) AS Product_Count FROM sales GROUP BY Category;
Category | Product_Count |
---|---|
Electronics | 3 |
Furniture | 2 |
SELECT Category, Region, SUM(Sales_Amount) AS Regional_Sales FROM sales GROUP BY Category, Region;
Category | Region | Regional_Sales |
---|---|---|
Electronics | North | 1700 |
Electronics | South | 500 |
Furniture | East | 350 |
HAVING 子句用於聚合後過濾群組,與 WHERE 不同,後者在分組前過濾行。
SELECT column1, aggregate_function(column2) FROM table_name GROUP BY column1;
Category | Total_Sales |
---|---|
Electronics | 2200 |
執行順序:
SELECT 中的欄位:
SELECT 語句中的欄位必須是:
有效查詢範例:
SELECT Category, SUM(Sales_Amount) AS Total_Sales FROM sales GROUP BY Category;
無效查詢範例:
SELECT Category, COUNT(Product) AS Product_Count FROM sales GROUP BY Category;
多列:
GROUP BY 可以根據多列對資料進行分組,以建立更精細的劃分。
NULL 處理:
分組列中帶有 NULL 的行被視為單一組。
銷售報告:
計算每個產品或地區的總銷售額。
庫存管理:
計算每個類別中的項目數量。
資料分析:
依類別、日期或位置計算平均分數或總分。
GROUP BY 子句是 SQL 中的一個強大工具,用於匯總資料並產生有意義的見解。無論您是計算總計、平均值還是計數,了解如何有效使用 GROUP BY 對於高效的資料庫查詢和報告至關重要。
嗨,我是 Abhay Singh Kathayat!
我是一名全端開發人員,擁有前端和後端技術的專業知識。我使用各種程式語言和框架來建立高效、可擴展且用戶友好的應用程式。
請隨時透過我的商務電子郵件與我聯繫:kaashshorts28@gmail.com。
以上是掌握 SQL GROUP BY:組織和匯總數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!