聚合函数
每张数据表,其实是一张二维结构的表格,分为行 row 和列 column。行就是一条数据或者称之为记录 record,列就是一个字段。比如用户表的一条记录就包含了username,password,age,gender,phone 五个字段,也就是有五列。
前面使用 select 关键字查询数据,其实都是从行的角度去查询。针对列的查询,可以使用聚合函数。所以聚合函数的作用就是统计某一列的数据,比如求年龄的平均值,计算一共有多少用户,求最大年龄和最小年龄,都可以使用聚合函数,方便地计算出结果。
MySQL 中提供了5种聚合函数:
函数 | 功能 |
count | 统计数量,返回指定字段的总数 |
max | 计算最大值,返回指定字段值的最大值 |
min | 计算最小值,返回指定字段值的最小值 |
avg | 计算平均值,返回指定字段值的平均值 |
sum | 求和,返回指定字段值的和 |
下面是一些使用聚合函数的示例。
计算一共有多少用户,也就是计算用户表的总记录数:
select count(username) from user;
统计用户的平均年龄:
select avg(age) from user;
统计学生的最高分数:
select max(score) from student;
统计学生的最低分:
select min(age) from student;
计算所有学生的总分:
select sum(age) from student;
还可以结合查询条件,统计及格的人数:
select count(name) from student where socre >= 60;
聚合函数可以同时使用,比如制作一张年级的成绩单,要分别统计每个班的最高分,平均分
需要注意的是,使用聚合函数时,对于统计的字段值为 NULL 的记录,不参与计算。比如某个学生没有参加考试,score 为 null,求平均分时不会计算上他:
// score 值为 null 的那一条记录,不参与平均值计算
select avg(socre) from student;
小结
MySQL 常用的聚合函数有5个,分别是计数函数 COUNT()
,求最大值函数 MAX()
、求最小值函数 MIN()
, 求平均函数 AVG()
和求和函数 SUM()
。