内容正文:
数据库表数据的操纵
第四章
1
目 录
2
4.1 单表查询
4.2 分组统计查询
4.3 多表连接查询
4.4 嵌套查询
4.5 数据更新
4.6 查询优化——索引
4.2 分组统计查询
掌握简单统计数据的方法。
掌握对查询结果进行统计、分组和筛选的方法。
知识目标
会利用聚合函数和GROUP BY子句对查询结果进行简单统计。
会对查询结果进行统计、分组和筛选。
能力目标
5
全院学生信息查询
教务处负责学籍管理的潘老师为填写相关报表,需要获取学生的如下信息:
1.统计江苏籍的学生总人数。
2.按班级统计学生人数。
3.分别统计17041011班男、女生人数,党、团员人数,来自不同地区的人数。
、
任务描述
6
此任务主要运用聚合函数和GROUP BY子句来实现数据的统计。
1.统计江苏籍的学生总人数。
利用COUNT函数实现人数的统计。
2.按班级统计学生人数。
通过对班级的分组实现班级人数统计。
3.统计每班男、女生人数。
通过对班级、性别的两次分组实现班级男、女生人数统计。
4.分别统计17041011班男、女生人数,党、团员人数,来自不同地区的人数。
指定班级后,按性别、政治面貌、籍贯的分组完成统计。
任务分析
4.2.1 聚合(集合)函数
聚合函数可以对表中指定的若干列或行进行统计,并且在查询结果集中输出统计值。
语法格式:聚合函数([ALL|DISTINCT] 表达式)
聚 合 函 数 功 能 说 明
SUM 求和 返回表达式中所有值的总和
AVG 求平均值 返回表达式中所有值的平均值
COUNT 统计 统计满足条件的记录数
MAX 求最大值 返回表达式中的最大值
MIN 求最小值 返回表达式中的最小值
ALL表示对表达式的数值集中所有的值进行聚合函数运算
DISTINCT表示在消除重复的值后,对表达式的数值集进行聚合函数运算,默认为ALL。
表达式可以是涉及一个或多个列的算术表达式。
知识导读
4.2.1 聚合(集合)函数
【例4-24】统计学生表中学生的总人数和有特长的学生人数。
SELECT COUNT(*) AS 学生总人数, COUNT(resume) AS 特长人数
FROM student
【例4-25】统计课程表中课程类型的数量。
SELECT COUNT(DISTINCT c_type) 课程类型数量
FROM course
【例4-26】查询成绩表中170406号课程的最高分和最低分。
SELECT MAX(grade) 最高分,MIN(grade) 最低分
FROM score
WHERE c_id='170406'
【例4-27】计算成绩表中学号为1702011102的学生的平均分。
SELECT AVG(grade) 平均分
FROM score
WHERE s_id='1702011102'
知识导读
4.2.1 聚合(集合)函数
【例4-24】统计学生表中学生的总人数和有特长的学生人数。
SELECT COUNT(*) AS 学生总人数, COUNT(resume) AS 特长人数
FROM student
【例4-25】统计课程表中课程类型的数量。
SELECT COUNT(DISTINCT c_type) 课程类型数量
FROM course
【例4-26】查询成绩表中170406号课程的最高分和最低分。
SELECT MAX(grade) 最高分,MIN(grade) 最低分
FROM score
WHERE c_id='170406'
【例4-27】计算成绩表中学号为1702011102的学生的平均分。
SELECT AVG(grade) 平均分
FROM score
WHERE s_id='1702011102'
知识导读
4.2.1 聚合(集合)函数
思考下面两个问题:
1.【例4-27】代码可否写成如下所示?
SELECT s_id,AVG(grade) 平均分
FROM score
WHERE s_id