- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇总与分组查询与单行子查询和多行子查询
9.2.1 汇总数据
SQL提供了5个汇总函数用于在表的列上进行算术运算,这5个汇总函数是:Count、Sum、Avg、Max、Min。Count和Sum尽管在表面上比较相近,但其作用完全不同。Count用于计算表中数据的行数,而Sum用于计算数值项相加的和。Avg用于计算表中一个字段的平均值,Max用于得到最大值,Min用于得到最小值,如表8.7所示。
表8.7 汇总函数列表
汇总函数 描述 Avg(expr) 列值的平均值该列只能包含数字数据 Count(expr), Count(*) 列值的计数(如果将列名指定为expr)或是表或组中所有行的计数(如果指定 *)Count(expr) 忽略空值,但 Count(*) 在计数中包含空值 Max(expr) 列中最大的值(文本数据类型中按字母顺序排在最后的值)忽略空值 Min(expr) 列中最小的值(文本数据类型中按字母顺序排在最前的值),忽略空值 Sum(expr) 列值的合计该列只能包含数字数据
当使用函数时,默认情况下,汇总信息包含所有的指定行。在某些情况下,结果集包含非惟一的行。可使用函数的 DISTINCT 选项筛选出非惟一的行。
SELECT Count(*)
FROM Products
分析与讨论:
汇总函数Count(*)计算表的行数,包括含有NULL值的行。
注意: 除非和GROUP BY相连,在查询的项中,SELECT后面的汇总函数不能和字段名一起使用。如下面的代码是错误的:
SELECT ProductName ,Count(*) FROM Products
任务9.13
问题描述:统计订单数目。
解决方案:
SELECT Count( Distinct OrderID) AS 订单数目
FROM [Order Details]
分析与讨论:
汇总函数Count(OrderID)计算OrderID列的值的个数,OrderID列的NULL值不包含在内。
汇总函数Count( Distinct OrderID) 计算OrderID列的值的个数,OrderID列的NULL值不包含在内,如果多行OrderID值相同,则只取一行参入计数。
考虑下面两个查询语句的不同。
SELECT Count(OrderID) AS 订单数目 FROM [Order Details]
SELECT Count( Distinct OrderID) AS 订单数目 FROM [Order Details]
第一个查询语句计算订单明细表中所有的订单数,包括重复的订单,第二个查询只计算不同的订单。
任务9.14
问题描述:查询所有订单的销售额。
解决方案:
SELECT SUM(UnitPrice *Quantity *(1-Discount)) AS 销售额
FROM [Order Details]UnitPrice *Quantity *(1-Discount)求和,求出所有订单的销售额。
9.2.2 分组查询
对于一个查询的输出结果,还可以基于指定的列对它们进行分组操作。通过使用GROUP BY关键字来对行依照指定列相同的值进行分组,这样就可以实现对每组记录进行计算,并将每一组记录合并或汇集为一个记录。像这样使用GROUP BY关键字的查询叫做分组查询,分组查询常和汇总函数GROUP BY,这样列值相同的行归为一组,然后就可以在SELECT 子句 select 列表中函数
(a) (b)
图9.1 对OrderID列分组查询
解决方案:
SELECT OrderID, SUM(Quantity) AS 产品总数
FROM [Order Details]
GROUP BY OrderIDGROUP BY关键字对OderID列进行分组,DBMS会首先按照OderID值把所有的行排序,然后将所有OderID列值相同的行归成一组,针对于每一个不同的OderID值,都会有相应的一个组,这样就得到6组,然后对各组的Quantity列求和,就得到各组的订购产品的总数,并将每一组都合并为一条记录(如图9.1(b)所示)。
当使用GROUP BY时,只有在GROUP BY子句中出现的列和汇总函数SELECT指定的列表中,以下查询会产生错误:
SELECT OrderID, Quantity,SUM(Quantity) AS 产品总数
FROM [Order Details]
GROUP BY OrderIDGROUP BY,这几列值相同的行归为一组。
任务9.16
问题描述:对产品表,计算每一个供应商对每一类别供应多少个不同的产品。
解决方案:
USE Northw
您可能关注的文档
- 07年广东高考.doc
- 财务报表分析课程期末考察.doc
- 北师大版数学三年级下《轴对称图形》.ppt
- 第十一课 单片机指令(一).doc
- 九(上)英 语 第四单元学案.doc
- 幼儿涂色 2.doc
- UFV-200F3(相电压)功能说明.doc
- 电影深度报道.docx
- 小房换别墅.doc
- 第一册知识梳理.doc
- 智慧教育云平台对区域教育管理创新模式的影响及对策研究教学研究课题报告.docx
- 《体验经济视角下旅游景区服务质量提升的旅游服务旅游服务可持续发展研究》教学研究课题报告.docx
- 2025年复旦大学附属眼耳鼻喉科医院浦东分院医护人员招聘参考题库附答案解析.docx
- 2025年北京闹市口医院医护人员招聘笔试备考题库及答案解析.docx
- 初中物理教学中的科学探究与创新精神培养研究教学研究课题报告.docx
- 《大型商业建筑室内环境品质优化设计中的室内通风与空气质量控制技术研究》教学研究课题报告.docx
- 人工智能技术在老年教育中促进老年人心理健康教育与干预的应用教学研究课题报告.docx
- 基于人工智能的高中地理教学风险预警模型构建与实践教学研究课题报告.docx
- 2025年解放军第九八医院医护人员招聘参考题库附答案解析.docx
- 2025年达州市第二人民医院医护人员招聘参考题库附答案解析.docx
最近下载
- 2025形势与政策-加快建设社会主义文化强国.pptx
- 人教版(2025)七年级下册Unit1Animal FriendsSection B How are animals part of our lives Section B 1a~2b课件+音频(共3.pptx VIP
- 110kv变电站继电保护毕业设计.doc VIP
- 公路隧道工程施工.pptx
- 电信行业运营商业务连续性保障方案.doc VIP
- 生态酒店设计分析.pptx
- GB∕T 702-2017 热轧钢棒尺寸、外形、重量及允许偏差(高清版).pdf
- 2025-2030年中国采血器产业运行动态分析及投资战略咨询报告.docx
- 江苏旅游资源的特征与分类及开发思考.pptx VIP
- 海南大学2022-2023学年《细胞生物学》期末考试试卷(B卷)附参考答案.docx
文档评论(0)