




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
通过分组相关数据生成报告
目标通过本章学习,您将可以:使用ROLLUP
操作分组使用CUBE操作分组使用GROUPING
函数处理ROLLUP
或CUBE操作所产生的空值使用GROUPINGSETS
操作进行单独分组组函数组函数处理多行返回一个行.举例:SELECT [column,]group_function(column)...FROM table[WHERE condition][GROUPBY group_by_expression][ORDERBY column];SELECTAVG(salary),STDDEV(salary),COUNT(commission_pct),MAX(hire_date)FROMemployeesWHEREjob_idLIKE'SA%';GROUPBY
子句语法:例子:SELECTdepartment_id,job_id,SUM(salary),COUNT(employee_id)FROMemployeesGROUPBYdepartment_id,job_id;SELECT [column,]FROM table[WHERE condition][GROUPBY group_by_expression][ORDERBY column];group_function(column)...HAVING
子句使用HAVING
对组函数进行限制.对查询进行第二次限制.SELECT [column,]group_function(column)...FROM table[WHERE condition][GROUPBY group_by_expression][HAVING having_expression] [ORDERBY column];带有ROLLUP
和
CUBE
操作的GROUPBY
子句使用带有ROLLUP
和CUBE
操作的GROUPBY
子句产生多种分组结果.ROLLUP
产生n+1种分组结果.CUBE
产生2的n次方种分组结果ROLLUP操作符ROLLUP
是对GROUPBY
子句的扩展.ROLLUP
产生n+1种分组结果,顺序是从右向左.SELECT [column,]group_function(column)...FROM table[WHERE condition][GROUPBY [ROLLUP]group_by_expression][HAVING having_expression];[ORDERBY column];ROLLUP
操作符:举例
SELECTdepartment_id,job_id,SUM(salary)FROMemployeesWHEREdepartment_id<60GROUPBYROLLUP(department_id,job_id);312CUBE操作符CUBE是对GROUPBY
子句的扩展.CUBE
会产生类似于笛卡尔集的分组结果.SELECT [column,]group_function(column)...FROM table[WHERE condition][GROUPBY [CUBE]group_by_expression][HAVING having_expression][ORDERBY column];CUBE
操作符:举例SELECTdepartment_id,job_id,SUM(salary)FROMemployeesWHEREdepartment_id<60GROUPBYCUBE(department_id,job_id);1234GROUPING
函数GROUPING
函数:GROUPING
函数可以和CUBE
或ROLLUP
结合使用使用GROUPING
函数,可以找到哪些列在该行中参加了分组使用GROUPING
函数,可以区分空值产生的原因GROUPING
函数返回0或1SELECT[column,]group_function(column)..,
GROUPING(expr)FROM table[WHEREcondition][GROUPBY[ROLLUP][CUBE]group_by_expression][HAVINGhaving_expression][ORDERBYcolumn];GROUPING
函数:举例
SELECTdepartment_idDEPTID,job_idJOB,SUM(salary),GROUPING(department_id)GRP_DEPT,GROUPING(job_id)GRP_JOBFROMemployeesWHEREdepartment_id<50GROUPBYROLLUP(department_id,job_id);123GROUPING
SETS使用GROUPINGSETS
在同一个查询中定义多个分组集.Oracle对GROUPINGSETS
子句指定的分组集进行分组后用
UNIONALL
操作将各分组结果结合起来.Groupingset的优点:只进行一次分组即可.不必书写复杂的UNION
语句GROUPINGSETS
中包含的分组项越多,性能越好.NotesOnlyGROUPING
SETS:举例SELECTdepartment_id,job_id,manager_id,avg(salary)FROMemployeesGROUPBYGROUPINGSETS
((department_id,job_id),(job_id,manager_id));…1…2复合列复合列是被作为整体处理的一组列的集合.ROLLUP
(a,
,
d)使用括号将若干列组成复合列在ROLLUP
或CUBE
中作为整体进行操作.在ROLLUP
或CUBE中,复合列可以避免产生不必要的分组结果.(b,c)复合列:举例SELECTdepartment_id,job_id,manager_id,SUM(salary)FROMemployees
GROUPBYROLLUP(department_id,(job_id,manager_id));…2341连接分组集连接分组集可以产生有用的对分组项的结合.将各分组集,ROLLUP和
CUBE
用逗号连接Oracle自动在GROUPBY
子句中将各分组集进行连接.连接的结果是对各分组生成笛卡尔集.GROUPBYGROUPINGSETS(a,b),GROUPINGSETS(c,d)………连接分组集:举例SELECTdepartment_id,job_id,manager_id,SUM(salary)FROMemployees
GROUPBYdepartment_id,ROLLUP(job_id),CUBE(manager_id);12345总结通过本章学习,您已经可以:使用ROLLUP
操作符使用CUB
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初一上学期长郡数学试卷
- 高级瓦楞纸板及纸箱生产项目环评报告表
- 通信电缆施工方案
- 2024-2025学年下学期高一语文第二单元B卷
- 柴油装卸系统施工方案
- 【专精特新】稀土永磁材料企业专精特新“小巨人”成长之路(智研咨询)
- 信息技术下的立体几何教学初探
- 高中历史课堂教学情境创设的策略研究
- 南京科远KD200变频器使用手册
- 中外教育史知到课后答案智慧树章节测试答案2025年春牡丹江师范学院
- 一级公司向二级公司授权管理制度
- 耳鼻咽喉头颈外科学第篇 鼻科学
- 沃尔玛全国的分布
- (自考)财务管理学完整版课件全套ppt教程(最新)
- 第四纪地质与环境:第十一章 第四纪气候变迁及其动力机制
- 钢结构厂房工程施工组织设计方案(85页)
- 小学生心理健康讲座-(精)
- 蝴蝶豌豆花(课堂PPT)
- 数独6×6初级打印版
- 口腔修复学-第七章-牙列缺失的全口义齿修复
- Y-Y2系列电机绕组标准数据汇总
评论
0/150
提交评论