多行函数又称组函数,这类函数用于对多行数据进行操作,在使用时需要注意一下几点:
1、组函数忽略空值——可以通过ifnull函数或if(expr1, expr1, expr1)用一个值代替空值;
2、组函数默认考虑重复值——可以通过distinct关键字使组函数不考虑重复值;
常用组函数:
1.avg(input):求平均值
例如:select avg(age) from student;#计算学生平均年龄,包括重复的年龄
2.max(input):求最大值
例如:select max(age) from student——获取学生表中最大年龄
3.min(input):求最小值
例如:select min(age) from student——获取学生表中最小年龄
4.sum(input):求和
例如:select sum(age) from student——计算学生表中年龄之和
5.count(*|input):求行数(如果使用*则不会忽略空值的行)
例如:select count(name) from student;#3,student表中有一条数据中的name为空 select count(distinct name) from student;#2,student表中有一条数据中的name为空,有两条数据name的值重复
select count(ifnull(name,' ')) from student;#4, 将name为空的值置为1个空格
select count(*) from student;#4,*不会忽略空值的行
6.stddev(input):求标准差
7.variance(input):求方差
注意:count、max和min组函数操作的数据的数据类型可以是char、varchar、int或date,但不能为clob;avg、sum、stddev和varlance仅能用在数字类型的数据上。
select* from student
#多行函数:按照指定字段统计多条数据,聚合函数select count(id) from student
#Sum
select sum(age) from student
#avg
select avg(age) from student
#max min
select max( age) from studentselect min(age) from student
group by
group by用于将表中数据划分为若干个组,group by后面用于指定分组的依据
例如: select sex,count(id) from student group by sex; #将student表学生按照sex分组,然后统计每组中的人数
注意: 只有对应列相同的多行数据才会归为一组,