MySQL中的分组聚合查询
来源:互联网 发布:团队办公软件 编辑:程序博客网 时间:2024/04/30 12:43
前言
前面我们学习了MySQL中比较常用的简单查询和条件查询,今天来学习一下更高级的分组聚合查询。
MySQL中常用聚合函数表
函数名说明COUNT([DISTINCT | ALL] * )统计数据表中的记录数COUNT([DISTINCT | ALL] <列名> )统计数据表中的一列中值的个数MAX([DISTINCT | ALL] <列名>)求数据表的一列值中的最大值MIN([DISTINCT | ALL] <列名>)求数据表的一列值中的最小值SUM([DISTINCT | ALL] <列名>)计算数据表的一列中值的总和AVG([DISTINCT | ALL] <列名>)计算数据表的一列中值的平均值其中,如果指定关键字DISTINCT,则表示在计算时要取消指定列中的重复值;如果不指定DISTINCT短语或指定ALL短语(ALL为默认值),则表示不取消重复值。PS.除了函数COUNT(*)外,其余聚合函数(包括COUNT(<列名>))都会忽略空值。
下面根据之前的表来做一下示例。这里只给出SQL命令。
#查询学生总人数
SELECT COUNT(*) FROM tb_student;
#查询选修了课程的学生总人数
SELECT COUNT(DISTINCT studentNo) FROM tb_score;
#计算选修课程编号为“2017001”的学生平均成绩
SELECT AVG(score) FROM tb_score WHERE courseNo=’ 2017001;
#计算选修课程编号为“2017001”的学生最高分
SELECT MAX(score) FROM tb_score WHERE courseNo=’ 2017001;
#如果有学生选修课程后没有成绩,即字段score的值为空,在使用SUM(score)、AVG、MAX、MIN等聚合函数进行计算时,系统都会自动忽略空值。
分组聚合查询
分组聚合查询是通过把聚合函数(如COUNT()、SUM()等)添加到一个带有GROUP BY分组子句的SELECT语句中来实现的。
GROUP BY子句的语法格式是:
[GROUP BY 字段列表] [HAVING <条件表达式>]
其中,GROUP BY对查询结果按字段列表进行分组,字段值相等的记录分为一组;指定用于分组的字段列表可以是一列,也可以是多个列,彼此间用逗号分隔;HAVING短语对分组的结果进行过滤,仅输出满足条件的组。
PS.使用GROUP BY子句后,SELECT子句的目标列表达式只能包含GROUP BY子句中字段列表和聚合函数。
下面看一下具体实例SQL:
#查询各个课程号及相应的选课人数
SELECT courseNo, COUNT(studentNo) FROM tb_score GROUP BY courseNo;
#查询每个学生的选课门数、平均分和最高分
SELECT studentNo, COUNT(*) 选课门数, AVG(score) 平均分, MAX(score) 最高分 FROM tb_score GROUP BY studentNo;
#查询学生选课的平均成绩,只取大于80分的才输出
SELECT AVG(score) 平均分 FROM tb_score HAVING AVG(score)>=88;
小结
上面就是今天的主题内容了,今天简单分享下MySQL中的分组聚合查询,这对数据分析很有帮助,可以分各个维度的数据指标。希望通过上面的操作能帮助大家。如果你有什么好的意见,建议,或者有不同的看法,我都希望你留言和我们进行交流、讨论。
如果想快速联系我,欢迎关注微信公众号:AiryData。
- MySQL中的分组聚合查询
- mysql分组查询聚合函数
- 06-mysql中的查询(排序、聚合函数、分组、分页)(第二章)
- Elasticsearch分组聚合-查询
- mysql 数据库笔记-基本查询(分组、聚合函数)
- Mysql学习之分组查询配合聚合函数
- MySQL数据库的聚合函数和分组查询
- mysql 分组聚合事例
- mysql group_concat聚合分组
- Hibernate-分组查询、聚合函数
- 【0042】SQL查询--分组聚合
- 聚合函数和分组查询
- mysql排序查询,多条件排序查询,聚合函数的使用,分组统计查询,
- Mysql中的数据分组和子查询
- mysql聚合函数和分组
- Mysql分组以及聚合函数
- MySql分组以及聚合函数
- MySQL中的分组查询与连接查询语句
- Windows has trigger a breakpoint
- Mysql启动不了?
- MQTT服务器搭建--Apollo
- Maven assembly实现自定义打包
- Shell Extensions -Context Menu(添加右键菜单项)
- MySQL中的分组聚合查询
- a链接
- 流媒体相关资料
- 关于导项目到myeclipse的几点总结
- SCR888 support iBET Lucky Draw Jason Zhang & Power Station
- Docker 学习
- linuxmint18上cocos2dx protobuf2.6.1编译、使用方法
- 文本框叠合下拉框,下拉框附带查询
- 如何快速判断一个数是不是2的n次方