首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 聚合函數實戰:COUNT、SUM、AVG、MAX、MIN、DISTINCT 統計與組合查詢

     編輯:MySQL 綜合教學

MySQL 聚合函數實戰:COUNT、SUM、AVG、MAX、MIN、DISTINCT 統計與組合查詢

聚合函數對列值進行彙總計算,返回單一值。常用於報表、儀表盤、統計分析。本文以 products 表演示各函數用法與組合技巧。

示例表數據

products 表

1. AVG() 平均值

SELECT AVG(prod_price) AS avg_price FROM products;

返回單行單列結果。平均值

帶條件:SELECT AVG(prod_price) FROM products WHERE vend_id = 1003; 條件平均值

2. COUNT() 行數統計

  • COUNT(*):統計所有行(含 NULL)。
  • COUNT(column):統計該列非 NULL 行數。
SELECT COUNT(*) AS total FROM products; -- 14 行
SELECT COUNT(*) AS v1001_cnt FROM products WHERE vend_id = 1001;

COUNT 總行數 條件 COUNT

3. MAX() / MIN() 極值

SELECT MAX(prod_price) AS max_price FROM products;
SELECT MIN(prod_price) AS min_price FROM products;

MAX MIN

4. SUM() 求和

SELECT SUM(quantity * item_price) AS total_sales FROM orderitems WHERE order_num = 20005;

SUM

5. DISTINCT 去重統計

SELECT COUNT(DISTINCT vend_id) AS vendor_count FROM products;

統計有多少個不同廠商。DISTINCT

6. 多聚合函數組合

SELECT COUNT(*) AS items,
       MIN(prod_price) AS price_min,
       MAX(prod_price) AS price_max,
       AVG(prod_price) AS price_avg
FROM products;

單次掃描獲取多項統計,效率最高。組合聚合

進階提示

  • COUNT(*) 在 MyISAM 中極快(存儲行數),InnoDB 需掃描聚簇索引,大表可考慮觸發器維護計數表或近似值 EXPLAIN 估算。
  • SUM()、AVG() 忽略 NULL,若需將 NULL 視為 0 用 COALESCE(col,0)。
  • 聚合結果別名建議語義化(AS total_sales),便於應用層映射。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved