第7章分组与连接(免费阅读).pptVIP

  • 29
  • 0
  • 约1.16万字
  • 约 60页
  • 2017-01-01 发布于重庆
  • 举报
第7章 分组与连接 前言 场 景: BigCollege领导想同时查看各个专业的名称以及学生人数,这时就需要用到分组与连接。因为专业名称在Major表中,而查看学生人数就需要用到Student表,所以需要将两张表进行连接,并且同时按照专业进行分组来查看学生人数。 本课教学内容 分组查询 使用COMPUTE 交叉连接 内连接 外连接 自连接 多表连接 分组查询 SQL Server分组查询机制: 用GROUP BY子句提供了一种对结果集进行分组的方法。 GROUP BY子句还可以借助聚合函数,将数据分组汇总。 HAVING子句指定分组后结果集(即:组记录)的查询条件。 分组查询 按单个字段分组 单个字段分组: 按照指定的一列,将表中的数据行划分为多个组,每个组只对应一条组记录。 组记录: 由组的数据信息组成的行 由包含在聚合函数或GROUP BY 子句中的列组成 在student表中,按照“性别”对学生进行分组。 SELECT * FROM Student GROUP BY stuSex SELECT stuSex FROM Student GROUP BY stuSex 分组查询 思 考 如图所示的学生表按专业编号分组后,哪些属性是组的属性? 分组查询 按单个字段分组 在Student表中,按照“专业”对学生进行分组。 SELECT stuMajorNO FROM Student GROUP BY stuMajorNO 在Student表中,按照“性别”分组查看学生人数。 SELECT stuSex as 性别,COUNT(*) as 人数 FROM Student GROUP BY stuSex SELECT stuSex as 性别,COUNT(*) as 人数 FROM Student GROUP BY 性别 分组查询 按单个字段分组 在Student表中,按照“专业”分组查看学生人数 。 SELECT stuMajorNo as 专业,count(*) as 人数 FROM Student GROUP BY stuMajorNo 注 意: text、ntext和image数据类型的字段不能作为GROUP BY子句的分组关键字。 GROUP BY子句不能使用字段别名。 分组查询 思 考 在Register表中,查询不同课程学生所获的平均分。 分组查询 按多个字段分组 多个字段分组: 按照指定的多列,将表中的数据行划分为多个组,每个组只对应一条组记录。 在Student表中,按照 “性别”和“专业”分组统计学生人数。 SELECT stuMajorNo as 专业,stuSex as 性别,COUNT(*) as 人数 FROM Student GROUP BY stuSex,stuMajorNo SELECT stuMajorNo as 专业,stuSex as 性别,COUNT(*) as 人数 FROM Student GROUP BY stuMajorNo,stuSex 分组查询 思 考 在Classes表中,分组统计不同日期不同系开课的课程数 分组查询 HAVING子句 分组之前的条件用WHERE关键字,而分组之后的条件要使用关键字HAVING。 在Student表中,按照“专业”和“性别”分组统计学生人数,并且只显示性别为“男”的组。 SELECT stuMajorNo as 专业,stuSex as 性别,count(*) as 人数 FROM Student GROUP BY stuSex,stuMajorNo HAVING stuSex=男 SELECT stuMajorNo as 专业,stuSex as 性别,count(*) as 人数 FROM Student WHERE stuSex=男 GROUP BY stuSex,stuMajorNo 分组查询 HAVING子句 在Student表中,按照“专业”和“性别”分组统计所获学分大于60的学生人数,并且只显示性别为“男”的组。 SELECT stuMajorNo as 专业,stuSex as 性别,COUNT(*) as 人数 FROM Student WHERE stuTotalCredit60 GROUP BY stuSex,stuMajorNo HAVING stuSex=男 在Student表中,按照“专业”分组,并且只显示总学生人数大于3的组。 SELECT stuMajorNo as 专业,

文档评论(0)

1亿VIP精品文档

相关文档