MySQL 系统学习 第二阶段 第三章 DQL(Data Query Language)第四节:聚合函数(COUNT / SUM / AVG / MAX / MIN)
一、什么是聚合函数✔ 定义聚合函数就是对“一组数据”进行计算返回一个结果✔ 举例理解假设有学生成绩namescoreTom88Jack91Lucy95聚合函数会变成平均分91.3 最高分95 最低分88 总分274 人数3 多条数据 → 一个结果二、常用五大聚合函数COUNT 统计数量 SUM 求和 AVG 平均值 MAX 最大值 MIN 最小值三、COUNT最常用1. 统计总记录数SELECT COUNT(*) FROM student; 结果52. COUNT(字段)SELECT COUNT(age) FROM student;⚠️ 注意 会忽略 NULL3. COUNT(*) vs COUNT(1) vs COUNT(字段)写法含义推荐COUNT(*)统计所有行⭐⭐⭐⭐⭐COUNT(1)统计行⭐⭐⭐⭐COUNT(age)忽略NULL统计⭐⭐⭐✔ 面试回答企业开发中通常使用 COUNT(*) 来统计总行数因为它不会忽略任何记录语义最清晰。四、SUM求和示例SELECT SUM(score) FROM student; 结果439.5注意点SUM 只对数值类型有效INT / DECIMAL / FLOAT五、AVG平均值SELECT AVG(score) FROM student; 结果87.9本质AVG SUM / COUNT六、MAX最大值SELECT MAX(score) FROM student; 结果95.5常见用途最高分最大金额最新时间七、MIN最小值SELECT MIN(score) FROM student; 结果78.5八、聚合函数 WHERE重点示例只统计男生SELECT AVG(score) FROM student WHERE gender M; 先过滤再统计执行顺序FROM ↓ WHERE ↓ GROUP聚合 ↓ SELECT九、聚合函数不能和普通字段混用重点面试题❌ 错误写法SELECT name, AVG(score) FROM student;会报错 ❌❗ 为什么因为AVG(score) 一个结果 name 多个结果维度不一致✔ 正确方式GROUP BYSELECT name, score FROM student;或SELECT AVG(score) FROM student; 或后面学 GROUP BY 解决十、聚合函数 DISTINCT示例统计不重复人数SELECT COUNT(DISTINCT age) FROM student; 去重后再统计十一、企业真实场景1. 用户总数SELECT COUNT(*) FROM user;2. 商品总销售额SELECT SUM(price) FROM orders;3. 平均订单金额SELECT AVG(amount) FROM orders;4. 最高订单金额SELECT MAX(amount) FROM orders;5. 最低库存SELECT MIN(stock) FROM product;十二、聚合函数核心特点必须记住1. 作用于一组数据 2. 返回一个值 3. 自动忽略 NULL部分函数 4. 常与 WHERE / GROUP BY 配合十三、执行顺序非常重要SQL 实际执行FROM ↓ WHERE ↓ GROUP BY ↓ HAVING ↓ SELECT ↓ ORDER BY ↓ LIMIT 聚合发生在 GROUP BY 阶段十四、本节总结函数作用COUNT统计数量SUM求和AVG平均值MAX最大值MIN最小值