数据库技术项目式教程(MySQL)课件 任务4.2数据汇总统计.pptx
数据汇总统计
任务提出在对表数据进行查询中,经常会对数据进行统计计算,如统计个数、平均值、最大最小值、计算总和等操作。另外,还会根据需要对数据进行分开统计汇总,如统计各个班级的人数等操作。
任务分析SQL提供了许多集函数对数据进行各种统计计算。若需要对数据进行分组统计计算,GROUPBY子句就能够实现这种分组统计。
1.集函数相关知识与技能集函数函数功能COUNT(*)统计表中元组的个数COUNT(列名)统计列值非空的个数(忽略NULL值)SUM(列名)计算列值的总和(须为数值型列,忽略NULL值)AVG(列名)计算列值的平均值(须为数值型列,忽略NULL值)MAX(列名)计算列值的最大值(忽略NULL值)MIN(列名)计算列值的最小值(忽略NULL值)Count(distinct列名)统计列中非空值的去除重复值之后的个数。
【例】统计Student表中学生的记录数。【例】查询课程编号为2003003课程的学生期末成绩的最高分和最低分。【例】统计出信息工程学院的专业个数。任务实施
2.分组统计先将表中数据分组,然后再对每个组进行统计计算。GROUPBY分组列名【例】统计各班级学生人数。【例】统计各门课程学生的平时成绩平均分、期末成绩平均分。相关知识与技能
3.对组筛选对查询数据分组后对这些组按条件进行筛选,输出满足条件的组。HAVING组筛选条件表达式【例】查询出课程选课人数超过2人的课程编号。【例】查询出所有选修课程的平均期末成绩小于50分的学生学号。相关知识与技能
任务总结若要对数据库表中数据进行统计计算,可使用集函数。若要对数据进行分组统计计算,使用GROUPBY子句。若在表中数据分组后还要对这些组按条件进行筛选,输出满足条件的组,则使用HAVING子句。 SELECT[ALL|DISTINCT]目标列表达式 FROM表名 [WHERE行条件表达式] [GROUPBY分组列名] [HAVING组筛选条件表达式] [ORDERBY排序列名[ASC|DESC]];