MySQL数据操作与查询- 聚合函数和分组查询

一、聚合函数
聚合函数主要用来进行数据汇总
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:在分组之进行数据过滤筛选。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值