分组聚合查询两门以上MySQL_MySQL中的分组聚合查询

下面根据之前的表来做一下示例。这里只给出SQL命令。

#查询学生总人数

SELECT COUNT(*) FROM tb_student;

#查询选修了课程的学生总人数

SELECT COUNT(DISTINCT studentNo) FROM tb_score;

#计算选修课程编号为“2017001”的学生平均成绩

SELECT AVG(score) FROM tb_score WHEREcourseNo=’ 2017001;

#计算选修课程编号为“2017001”的学生最高分

SELECT MAX(score) FROM tb_score WHEREcourseNo=’ 2017001;

#如果有学生先修课程后没有成绩,即字段score的值为空,在使用SUM(score)、AVG、MAX、MIN等聚合函数进行计算时,系统都会自动忽略空值。

#查询学生总人数

SELECT COUNT(*) FROM tb_student;

#查询选修了课程的学生总人数

SELECT COUNT(DISTINCT studentNo) FROM tb_score;

#计算选修课程编号为“2017001”的学生平均成绩

SELECT AVG(score) FROM tb_score WHEREcourseNo=’ 2017001;

#计算选修课程编号为“2017001”的学生最高分

SELECT MAX(score) FROM tb_score WHEREcourseNo=’ 2017001;

#如果有学生先修课程后没有成绩,即字段score的值为空,在使用SUM(score)、AVG、MAX、MIN等聚合函数进行计算时,系统都会自动忽略空值。

分组聚合查询

分组聚合查询是通过把聚合函数(如COUNT()、SUM()等)添加到一个带有GROUP BY分组子句的SELECT语句中来实现的。

GROUP BY子句的语法格式是:

[GROUP BY 字段列表] [HAVING ]

[GROUP BY 字段列表] [HAVING ]

其中,GROUP BY对查询结果按字段列表进行分组,字段值相等的记录分为一组;指定用于分组的字段列表可以是一列,也可以是多个列,彼此间用逗号分隔;HAVING短语对分组的结果进行过滤,仅输出满足条件的组。

PS.使用GROUP BY子句后,SELECT子句的目标列表达式只能包含GROUP BY子句中字段列表和聚合函数。

下面看一下具体实例SQL:

#查询各个课程号及相应的选课人数

SELECT courseNo, COUNT(studentNo) FROM tb_scoreGROUP BY courseNo;

#查询每个学生的选课门数、平均分和最高分

SELECT studentNo, COUNT(*) 选课门数, AVG(score) 平均分, MAX(score) 最高分 FROM tb_score GROUP BY studentNo;

#查询学生选课的平均成绩,只取大于80分的才输出

SELECT AVG(score) 平均分 FROM tb_scoreHAVING AVG(score)>=88;

#查询各个课程号及相应的选课人数

SELECT courseNo, COUNT(studentNo) FROM tb_scoreGROUP BY courseNo;

#查询每个学生的选课门数、平均分和最高分

SELECT studentNo, COUNT(*) 选课门数, AVG(score) 平均分, MAX(score) 最高分 FROM tb_score GROUP BY studentNo;

#查询学生选课的平均成绩,只取大于80分的才输出

SELECT AVG(score) 平均分 FROM tb_scoreHAVING AVG(score)>=88;

小结

上面就是今天的主题内容了,今天简单分享下MySQL中的分组聚合查询,这对数据分析很有帮助,可以分各个维度的数据指标。希望通过上面的操作能帮助大家。如果你有什么好的意见,建议,或者有不同的看法,我都希望你留言和我们进行交流、讨论。

如果想快速联系我,欢迎关注微信公众号:AiryData。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值