Mysql常用聚合函数
1.聚合函数又叫组函数,通常是对表中的数据进行统计和计算,一般结合分组(group by)来进行使用,用于统计和计算分组数据
常用的聚合函数:
-
1.count(col):表示指定列的总行数
-
2.max(col):表示求指定列的最大值
-
3.min(col):表示求指定列的最小值
-
4.sum(col):表示求指定列的和
-
5.avg(col):表示求指定列的平均数
2.求总行数
--返回非null数据的总行数
select count(height) from students;
--返回总行数,包含null值记录,也计算在内
select count(*) from students
--返回总行数,包含null值记录,也计算在内
select count(1) from students
count(
*
)和count(1)没啥区别,官方推荐count(*
),避开所有麻烦 ; 实践是检验整理的唯一标准
https://zhuanlan.zhihu.com/p/28397595
3.求最大值(查询出所有值,并且过滤出最大值)
--求出男生编号最大值
select max(id) from students where gender =2
4.求最小值(查询出所有值,并且过滤出最小值)
--求出男生编号最小值
select min(id) from students where gender =2
5.求和(查询出所有值,并且对他们求和)
--查询男生的总身高
select sum(height) from students where gender=2
6.求平均值(查询出所有值(忽略了null值),并且对他们取平均值)
--查询男生的平均身高,忽略null值
select avg(height) from students where gender=2
select sum(height)/count(*) from students where gender=2
--查询男生的平均身高,包含null值,如果为null,就给他赋值0;
select avg(ifnull(height,0)) from students where gender=2;
说明
- ifnull函数:表示判断指定字段的值是否为null,如果为null,那么就使用自己提供的值
7.聚合函数的特点
- 聚合函数默认忽略字段为null的记录,要想列值为null的记录也参与计算,必须使用ifnull函数对null值做替换;
8.小结:
-
1.count(col):表示指定列的总行数
-
2.max(col):表示求指定列的最大值
-
3.min(col):表示求指定列的最小值
-
4.sum(col):表示求指定列的和
-
5.avg(col):表示求指定列的平均数