聚合函数做统计要点
- COUNT(列) 数非空行,COUNT(*) 数全部行包括空值
- SUM 求和、AVG 求平均,只对数值列有意义
- MAX / MIN 取最大最小,文本列按字典序比较
- 聚合函数默认作用在全表,加 GROUP BY 才按组分
- HAVING 用来过滤分组结果,WHERE 过滤的是分组前的行
聚合函数做统计示例
-- 每个用户的订单数与总金额
SELECT user_id, COUNT(*) AS order_cnt, SUM(amount) AS total
FROM orders
GROUP BY user_id
HAVING total ≥ 1000;
-- 全表基础统计
SELECT COUNT(*), AVG(price), MAX(price), MIN(price)
FROM product;
避坑提醒:COUNT(列名) 会跳过 NULL,而 COUNT(*) 不会——统计『有没有填』和『一共几行』要用不同的写法,混用会得出错的分母。