SQL汇总与分组数据.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SQL汇总与分组数据

使用聚合函数进行汇总和分组 SQL提供一组聚合函数,它们能够对整个数据集合进行计算,将一组原始数据转换为有用的信息,以便用户使用。例如求成绩表中的总成绩、学生表中平均年龄等。 SQL的聚合函数如表1所示。 表1 聚合函数 聚合函数 支持的数据类型 功 能 描 述 Sum(?) 数字 对指定列中的所有非空值求和 avg(?) 数字 对指定列中的所有非空值求平均值 min(?) 数字、字符、日期 返回指定列中的最小数字、最小的字符串和最早的日期时间 max(?) 数字、字符、日期 返回指定列中的最大数字、最大的字符串和最近的日期时间 count([distinct] *) 任意基于行的数据类型 统计结果集中全部记录行的数量,最多可达2?147?483?647行 count_big([distinct] *) 任意基于行的数据类型 类似于count(?)函数,但因其返回值使用了bigint数据类型,所以最多可以统计2^63-1行 ? 1.SUM(?)函数和AVG(?)函数 两个函数都是对列式数字型的进行计算,只不过SUM(?)是对列求和;而AVG(?)是对列求平均值。 示例: 求“grade”表中每学期的课程成绩的总和。在查询分析器中输入的SQL语句如下: use student select sum(课程成绩) as 总成绩 from grade 实现的过程如图1所示。 图1 求课程成绩的总和 当与GROUP BY子句一起使用时,每个聚集函数都为每一组生成一个值,而不是对整个表生成一个值。 示例: 在“student”表中,按“性别”分别求年龄的平均值。在查询分析器中输入的SQL语句如下: use student select 性别 ,avg(年龄) as 平均年龄 from student group by 性别 实现的过程如图2所示。 图2 男女生的平均年龄 2.MIN(?)函数和MAX(?)函数 MIN(?)和MAX(?)函数分别查询列中的最小值和最大值。但列的数据包含数字、字符或日期/时间信息。MIN(?)和MAX(?)函数结果与列中数据的数据类型完全相同。 示例: 查询“student”表中最早出生的学生。在查询分析器中输入的SQL语句如下: use student select min(出生日期) as 最早出生 from Student 实现的过程结果如图3所示。 图3 学生表中年龄最小的学生信息 下面把GROUP BY子句和MAX(?)函数结合使用。 示例: 在“student”表中,按“性别”分别求年龄的最大值。在查询分析器中输入的SQL语句如下: use student select 性别, max(年龄) as 最大年龄 from Student group by 性别 实现的过程如图4所示。 图4 男女生中年龄的最大值 3.COUNT(?)函数和COUNT_big(?)函数 COUNT(?)函数和COUNT_big(?)函数两个函数都是对列中数据值的数目进行计数。它们返回的值总是一个整数,不管列的数据类型。 示例: 求“student”表中女生的人数。在查询分析器中输入的SQL语句如下: use student select count(年龄) as 女生记录总数 from student where 性别=女 实现的过程如图5所示。 图5 “Student”表中女生的记录总数 COUNT(*)就可以求整个表所有的记录数。例如,求“student”表中所有的记录数,SQL语句如下: use student select count(*) from student 4.消除重复记录(DISTINCT) 指定DISTINCT关键字不但可以消除查询结果中的重复记录,而且在使用SUM(?)、AVG(?)和COUNT(?)聚合函数时,可以从列中消除重复的值。DISTINCT关键字和聚合函数使用的格式是:聚合函数名称(DISTINCT 列名)。 示例: 在“grade”表中,统计多少学生参加考试。在查询分析器中输入的SQL语句如下: use student select count(学号) from grade 实现的过程如图6所示。 图6 统计参加考试的学生 从上面的统计结果不难看出,实际上参加考试的学生是学号从B001~B005共5名,其中有重复的学号。这样为了正确统计到底有多少学生参加考试,就必须用到关键字DISTINCT。 示例: 在“grade”表中,统计多少学生参加考试。在查询分析器中输入的SQL语句如下: use student select count(distinct 学

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档