五、多表連接查詢——數據分組
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;