聚合函数

每张数据表,其实是一张二维结构的表格,分为行 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()