五、多表连接查询——数据分组
五、多表连接查询——数据分组
1.数据分组背景
当汇总成绩时,需要年级之间的横向对比,比如高中一年级,然后将一年级1班、2班、...,一直到所有班级的成绩进行对比,这个时候就需要分组汇总进行统计聚合。
2.如何使用分组查询
(1)语法如下:
select 列名或者聚合函数 from 表名
[where 条件表达式]
group by 分组列;
(2)示例1:
根据class列进行聚合。
select * from grade_score group by class;
#count(*)表示计算查询的数据有多少条
select *,count(*) from grade_score group by class;
(3)示例2:
使用聚合函数求每个年级的总成绩。
select *,sum(score) from grade_score group by class;
(4)示例3:
计算每个年级的平均分。
select *,sum(score)/count(class) from grade_score group by class;
select *,avg(score) from grade_score group by class;
select class,avg(score) from grade_score group by class;
(5)示例4:
汇总每个班级的人数。
select class,count(class) from grade_score group by class;
(6)示例5:
将成绩大于80的同学进行分组统计平均分数。
【注意点:where条件过滤先发生,然后再进行分组统计】
select class,avg(score) from grade_score where score>80 group by class;