亚洲国产第一_开心网五月色综合亚洲_日本一级特黄特色大片免费观看_久久久久久久久久免观看

Hello! 歡迎來到小浪云!


掌握 SQL GROUP BY:組織和匯總數(shù)據(jù)


avatar
小浪云 2024-12-19 185

掌握 SQL GROUP BY:組織和匯總數(shù)據(jù)

sql GROUP BY 子句:數(shù)據(jù)分組與匯總

SQL 的 GROUP BY 子句用于將數(shù)據(jù)按照一列或多列的值進行分組,通常與聚合函數(shù)(如 SUM、count、AVG、MAX、MIN)結(jié)合使用,對每個分組進行計算。

GROUP BY 語法

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

GROUP BY 工作原理

  1. 分組:具有相同 column1 值的行被劃分到同一組。
  2. 聚合:對每個分組應(yīng)用聚合函數(shù),計算單個結(jié)果。

示例表:銷售數(shù)據(jù)


產(chǎn)品 (product) 類別 (category) 銷售額 (sales_amount) 地區(qū) (region)
筆記本電腦 (laptop) 電子產(chǎn)品 (electronics) 1000 北部 (north)
手機 (phone) 電子產(chǎn)品 (electronics) 500 南部 (south)
電視 (tv) 電子產(chǎn)品 (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;

結(jié)果:

類別 (category) 總銷售額 (total_sales)
電子產(chǎn)品 (electronics) 2200
家具 (furniture) 350

2. 統(tǒng)計每個類別的產(chǎn)品數(shù)量

SELECT category, COUNT(product) AS product_count FROM sales GROUP BY category;

結(jié)果:

類別 (category) 產(chǎn)品數(shù)量 (product_count)
電子產(chǎn)品 (electronics) 3
家具 (furniture) 2

3. 按多列分組

SELECT category, region, SUM(sales_amount) AS regional_sales FROM sales GROUP BY category, region;

結(jié)果:

類別 (category) 地區(qū) (region) 地區(qū)銷售額 (regional_sales)
電子產(chǎn)品 (electronics) 北部 (north) 1700
電子產(chǎn)品 (electronics) 南部 (south) 500
家具 (furniture) 東部 (east) 350

GROUP BY 與 HAVING 結(jié)合使用

HAVING 子句用于在分組后過濾分組結(jié)果,與 WHERE 子句不同,WHERE 子句在分組前過濾行。

示例:過濾銷售額大于 500 的類別

SELECT category, SUM(sales_amount) AS total_sales FROM sales GROUP BY category HAVING SUM(sales_amount) > 500;

結(jié)果:

類別 (category) 總銷售額 (total_sales)
電子產(chǎn)品 (electronics) 2200

GROUP BY 重要提示

  1. 執(zhí)行順序:分組 -> 聚合 -> HAVING 過濾。
  2. SELECT 列:必須出現(xiàn)在 GROUP BY 子句中或用作聚合函數(shù)的參數(shù)。

有效查詢:

SELECT category, MAX(sales_amount) FROM sales GROUP BY category;

無效查詢:

SELECT Product, SUM(Sales_Amount) FROM sales GROUP BY Category; -- 錯誤:Product 不在 GROUP BY 中,也不是聚合函數(shù)的參數(shù)
  1. 多列分組:可以使用多個列進行分組,創(chuàng)建更細(xì)致的劃分。
  2. NULL 值處理:NULL 值被視為一個單獨的分組。

實際應(yīng)用場景

  • 銷售報表:計算每個產(chǎn)品或地區(qū)的總銷售額。
  • 庫存管理:計算每個類別的商品數(shù)量。
  • 數(shù)據(jù)分析:按類別、日期或位置計算平均值或總和。

總結(jié)

GROUP BY 子句是 SQL 中強大的數(shù)據(jù)匯總工具,能有效地生成有意義的分析結(jié)果。 熟練掌握 GROUP BY 的用法對于高效的數(shù)據(jù)庫查詢至關(guān)重要。

作者:Abhay Singh Kathayat
開發(fā)人員,精通前后端技術(shù),使用多種編程語言和框架構(gòu)建高效、可擴展、用戶友好的應(yīng)用程序。
聯(lián)系郵箱:kaashshorts28@gmail.com

相關(guān)閱讀