本篇文章将讲解 MySQL 中常用的 聚合函数(Aggregate Functions) 和 分组查询(GROUP BY),帮助你对数据进行统计分析。
目录
- 聚合函数简介
- 常用聚合函数
- [GROUP BY 分组查询](#GROUP BY 分组查询)
- [HAVING 条件过滤分组](#HAVING 条件过滤分组)
- 聚合函数常用示例对照表
- 小结
聚合函数简介
聚合函数用于对一组数据进行计算,并返回单一值。常用于统计、分析和报表场景。
MySQL 常用的聚合函数包括:
COUNT():计数SUM():求和AVG():平均值MAX():最大值MIN():最小值
常用聚合函数
1. COUNT()
计算行数或某列非 NULL 值的数量:
sql
SELECT COUNT(*) FROM users;
SELECT COUNT(age) FROM users;

2. SUM()
计算数值列的总和:
sql
SELECT SUM(age) FROM users;

3. AVG()
计算数值列的平均值:
sql
SELECT AVG(age) FROM users;

4. MAX() 与 MIN()
查询最大值或最小值:
sql
SELECT MAX(age) FROM users;
SELECT MIN(age) FROM users;

GROUP BY 分组查询
GROUP BY 将数据按指定列分组,并对每组进行聚合计算。例如:
sql
SELECT city, COUNT(*) AS user_count
FROM users
GROUP BY city;
按城市统计用户数量。
HAVING 条件过滤分组
HAVING 用于对分组后的结果进行条件过滤,类似于 WHERE 但作用于聚合结果:
sql
SELECT city, COUNT(*) AS user_count
FROM users
GROUP BY city
HAVING user_count > 5;
只返回用户数量大于 5 的城市。


聚合函数常用示例对照表
| 功能 | SQL 示例 | 说明 |
|---|---|---|
| 计数 | SELECT COUNT(*) FROM users; |
返回总行数 |
| 求和 | SELECT SUM(age) FROM users; |
返回年龄总和 |
| 平均值 | SELECT AVG(age) FROM users; |
返回平均年龄 |
| 最大值 | SELECT MAX(age) FROM users; |
返回最大年龄 |
| 最小值 | SELECT MIN(age) FROM users; |
返回最小年龄 |
| 分组计数 | SELECT city, COUNT(*) FROM users GROUP BY city; |
按城市分组计数 |
| 分组过滤 | SELECT city, COUNT(*) FROM users GROUP BY city HAVING COUNT(*)>5; |
分组后筛选 |
小结
本篇文章介绍了 MySQL 中 聚合函数 和 分组查询 的基础知识。掌握这些技能,你就可以轻松统计、分析数据,为数据报表和分析提供支持。
📘 下一篇,我们将学习 MySQL 子查询与嵌套查询,带你掌握更复杂的查询操作。