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

SELECT AVG(prod_price) AS avg_price FROM products;
返回單行單列結果。
帶條件:SELECT AVG(prod_price) FROM products WHERE vend_id = 1003; 
COUNT(*):統計所有行(含 NULL)。COUNT(column):統計該列非 NULL 行數。SELECT COUNT(*) AS total FROM products; -- 14 行 SELECT COUNT(*) AS v1001_cnt FROM products WHERE vend_id = 1001;

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

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

SELECT COUNT(DISTINCT vend_id) AS vendor_count FROM products;
統計有多少個不同廠商。
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),便於應用層映射。