掌握 SQL GROUP BY:組織和匯總數據
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
工作原理
- 分組:具有相同
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) |
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
子句不同, WHERE
子句在分組前過濾行。
示例:過濾銷售額大於500 的類別
SELECT category, SUM(sales_amount) AS total_sales FROM sales GROUP BY category HAVING SUM(sales_amount) > 500;
結果:
類別(category) | 總銷售額(total_sales) |
---|---|
電子產品(electronics) | 2200 |
GROUP BY
重要提示
- 執行順序:分組-> 聚合->
HAVING
過濾。 -
SELECT
列:必須出現在GROUP BY
子句中或用作聚合函數的參數。
有效查詢:
<code class="sql">SELECT category, MAX(sales_amount) FROM sales GROUP BY category;</code>
無效查詢:
<code class="sql">SELECT Product, SUM(Sales_Amount) FROM sales GROUP BY Category; -- 错误:Product 不在GROUP BY 中,也不是聚合函数的参数</code>
- 多列分組:可以使用多個列進行分組,創建更細緻的劃分。
- NULL 值處理:
NULL
值被視為一個單獨的分組。
實際應用場景
- 銷售報表:計算每個產品或地區的總銷售額。
- 庫存管理:計算每個類別的商品數量。
- 數據分析:按類別、日期或位置計算平均值或總和。
總結
GROUP BY
子句是SQL 中強大的數據匯總工具,能有效地生成有意義的分析結果。 熟練掌握GROUP BY
的用法對於高效的數據庫查詢至關重要。
作者:Abhay Singh Kathayat
全棧開發人員,精通前後端技術,使用多種編程語言和框架構建高效、可擴展、用戶友好的應用程序。
聯繫郵箱:kaashshorts28@gmail.com
以上是掌握 SQL GROUP BY:組織和匯總數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

比特幣的價格在20,000到30,000美元之間。 1. 比特幣自2009年以來價格波動劇烈,2017年達到近20,000美元,2021年達到近60,000美元。 2. 價格受市場需求、供應量、宏觀經濟環境等因素影響。 3. 通過交易所、移動應用和網站可獲取實時價格。 4. 比特幣價格波動性大,受市場情緒和外部因素驅動。 5. 與傳統金融市場有一定關係,受全球股市、美元強弱等影響。 6. 長期趨勢看漲,但需謹慎評估風險。

2025年全球十大加密貨幣交易所包括Binance、OKX、Gate.io、Coinbase、Kraken、Huobi、Bitfinex、KuCoin、Bittrex和Poloniex,均以高交易量和安全性著稱。

芝麻開門是重點加密貨幣交易的平台,用戶可以通過官方網站或社交媒體獲取入口,確保訪問時驗證SSL證書和網站內容的真實性。

全球十大加密貨幣交易平台包括Binance、OKX、Gate.io、Coinbase、Kraken、Huobi Global、Bitfinex、Bittrex、KuCoin和Poloniex,均提供多種交易方式和強大的安全措施。

Binance、OKX、gate.io等十大數字貨幣交易所完善系統、高效多元化交易和嚴密安全措施嚴重推崇。

目前排名前十的虛擬幣交易所:1.幣安,2. OKX,3. Gate.io,4。幣庫,5。海妖,6。火幣全球站,7.拜比特,8.庫幣,9.比特幣,10。比特戳。

使用C 中的chrono庫可以讓你更加精確地控制時間和時間間隔,讓我們來探討一下這個庫的魅力所在吧。 C 的chrono庫是標準庫的一部分,它提供了一種現代化的方式來處理時間和時間間隔。對於那些曾經飽受time.h和ctime折磨的程序員來說,chrono無疑是一個福音。它不僅提高了代碼的可讀性和可維護性,還提供了更高的精度和靈活性。讓我們從基礎開始,chrono庫主要包括以下幾個關鍵組件:std::chrono::system_clock:表示系統時鐘,用於獲取當前時間。 std::chron
