聚合函数的用法

MySQL支持SUM、MAX、MIN、AVG、COUNT等5种聚合函数,用于对数据进行求和、最大值、最小值、平均值和计数操作。GROUPBY用于数据分组,HAVING则在分组后进行筛选。例如,可以使用GROUPBY结合聚合函数分析学生分数,或者使用HAVING找出总分超过180的学生。

聚合函数

MYSQL 中内置了 5 种聚合函数,分别是: SUM 、 MAX 、 MIN 、 AVG 、 COUNT 。

sum : 求和

select sum(列) from table_name [其他子句]; 
select student_id,sum(score) from score group by student_id;

image-20230729220201609

max : 求最大值

select max(列) from table_name [其他子句]; 
select max(score) from score where course_id=1;

image-20230729220424238

min : 求最小值

select min(列) from table_name [其他子句]; 
select min(score) from score where course_id=1;

image-20230729220654025

avg : 求平均值

select avg(列) from table_name [其他子句]; 
select student_id,avg(score) from score group by student_id;

image-20230729220948468

count : 求数量

select count(列) from table_name [其他子句]; 
select count(*) from course;

image-20230729221324051

group by

group by 是对数据进行分组,分组时,表中有相同值的分为一组。分组后可以进行聚合查询。

group by 分组后的查询中, select 的列不能出现除了 group by 分组条件以及聚合函数外的其他列。

select 列1, 列2, (聚合函数) from table_name group by 列1, 列2; 
select s.id,s.name,sum(score) from student s,score sc where s.id=sc.student_id group by s.id,s.name;

image-20230729221700236

having

having 是对 group by 分组后的结果集进行筛选。

select 列1, 列2, (聚合函数) from table_name group by 列1, 列2 having分组后条件;
select s.id,s.name,sum(score) from student s,score sc where s.id=sc.student_id group by s.id,s.name having sum(score)>180;

image-20230729221816896

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值