一、聚合函数
聚合函数主要用来进行数据 汇总 。
1、sum
返回选取的某列的总和。
语法:select sum(字段名) from 表名 where 条件表达式
2、max
返回选取的某列的最大值。
语法:select max(字段名) from 表名 where 条件表达式
3、min
返回选取的某列的最小值。
语法:select min(字段名) from 表名 where 条件表达式
4、avg
返回选取的某列的平均值。
语法:select avg(字段名) from 表名 where 条件表达式
5、count
返回选取的某列或记录的行数。
语法:select count(字段名) from 表名 where 条件表达式或者:select avg(*) from 表名 where 条件表达式
【说明】(1)在聚合函数的使用中,列值为null的记录不参与运算。(2)在使用count时,*可以获取整张表的记录数。
【实例】 在student表中统计出html5成绩中的最高分、最低分、平均分、总分以及
html5的参考人数。
【解答】
1 select max(html5_score) 最高分,
2 min(html5_score) 最低分,
3 round(avg(html5_score),2) 平均分,
4 sum(html5_score) 总分,
5 count(html5_score) 参考人数
6 from student
二、分组查询
group by子句的作用: 通过一定的规则将一个数据集划分成若干个小的区域,然后针对这若干个小区域进行统计汇总。
1、单字段分组
select 字段列表(聚合函数) from 表名 group by 字段名
【实例】 在student表中按照组别统计出ps成绩中的最高分、最低分、平均分。
【解答】
1 select team 组别,
2 max(ps_score) 最高分,
3 min(ps_score) 最低分,
4 avg(ps_score) 平均分
5 from student
6 group by team
2、多字段分组
select 字段列表(聚合函数) from 表名 group by 字段名1 , 字段名2
【实例】 在student表中按照组别和性别统计出java成绩中的最高分、最低分、平均
分。
【解答】
1 select team 组别,
2 sex 性别,
3 max(java_score),
4 min(java_score),
5 avg(java_score)
6 from student
7 group by team,sex
8 order by team
3、order by 和 group by
order by和group by同时使用的规则:先分组之后再排序,即:group by写在order by前面
【实例】 在student_1903表中按照组别统计出ps成绩中的最高分、最低分、平均分,并按
照平均分降序排序。
【解答】
1 select team 组别,
2 max(ps_score),
3 min(ps_score),
4 avg(ps_score)5 from student_1903
6 group by team
7 order by avg(ps_score) desc
4、having子句
作用:如果需要在分组之后筛选数据,需要使用having。
语法:select 字段列表(聚合函数) from 表名 group by 字段列表 having 条件表达式
【实例】 在student_1903表中按照组别统计出计算机基础成绩中的平均分大于94分的记
录。
【解答】
1 select team,avg(computer_score)
2 from student_1903
3 group by team
4 having avg(computer_score)>94
5、where 和 having 的区别
where:在分组之 前 进行数据过滤筛选。having:在分组之 后 进行数据过滤筛选。