首頁 >資料庫 >mysql教程 >掌握 SQL GROUP BY:組織和匯總數據

掌握 SQL GROUP BY:組織和匯總數據

Barbara Streisand
Barbara Streisand原創
2025-01-04 19:03:41735瀏覽

Mastering SQL GROUP BY: Organizing and Summarizing Your Data

理解 SQL 中 GROUP BY 的使用量

SQL 中的 GROUP BY 子句用於根據一列或多列將資料組織成群組。它通常與聚合函數(例如 SUM、COUNT、AVG、MAX、MIN)一起使用,對每組資料執行計算。


GROUP BY 的語法

SELECT column1, aggregate_function(column2)
FROM table_name
GROUP BY column1;
  • column1:用於將資料分組的欄位。
  • aggregate_function(column2):應用於每組的聚合函數。
  • table_name:從中檢索資料的表。

GROUP BY 的工作原理

  1. 分組資料:

    指定列中具有相同值的行將分組在一起。

  2. 聚合函數:

    將行分組後,將套用聚合函數來計算每個組的單一結果。


範例表:銷售


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

GROUP BY 用法範例

1. 按類別分組銷售

SELECT Category, SUM(Sales_Amount) AS Total_Sales
FROM sales
GROUP BY Category;

結果

Category Total_Sales
Electronics 2200
Furniture 350

2. 統計每個類別的產品

SELECT Category, COUNT(Product) AS Product_Count
FROM sales
GROUP BY Category;

結果

Category Product_Count
Electronics 3
Furniture 2

3. 以多列分組

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

將 GROUP BY 與 HAVING 結合使用

HAVING 子句用於聚合後過濾群組,與 WHERE 不同,後者在分組前過濾行。

範例:過濾銷售額大於 500 的類別

SELECT column1, aggregate_function(column2)
FROM table_name
GROUP BY column1;

結果

Category Total_Sales
Electronics 2200

GROUP BY 的要點

  1. 執行順序

    • 行先分組。
    • 聚合函數應用於每個群組。
    • HAVING 子句中的過濾器最後套用。
  2. SELECT 中的欄位:

    SELECT 語句中的欄位必須是:

    • 出現在 GROUP BY 子句中。
    • 用於聚合函數。

有效查詢範例:

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;
  1. 多列:

    GROUP BY 可以根據多列對資料進行分組,以建立更精細的劃分。

  2. NULL 處理:

    分組列中帶有 NULL 的行被視為單一組。


實際用例

  • 銷售報告

    計算每個產品或地區的總銷售額。

  • 庫存管理

    計算每個類別中的項目數量。

  • 資料分析:

    依類別、日期或位置計算平均分數或總分。


結論

GROUP BY 子句是 SQL 中的一個強大工具,用於匯總資料並產生有意義的見解。無論您是計算總計、平均值還是計數,了解如何有效使用 GROUP BY 對於高效的資料庫查詢和報告至關重要。

嗨,我是 Abhay Singh Kathayat!
我是一名全端開發人員,擁有前端和後端技術的專業知識。我使用各種程式語言和框架來建立高效、可擴展且用戶友好的應用程式。
請隨時透過我的商務電子郵件與我聯繫:kaashshorts28@gmail.com。

以上是掌握 SQL GROUP BY:組織和匯總數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn