博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PLSQL_基础系列02_分组函数GROUP BY / ROLLUP / CUBE(案例)
阅读量:7169 次
发布时间:2019-06-29

本文共 1090 字,大约阅读时间需要 3 分钟。

2014-11-30 Created By BaoXinjian

一、摘要


ROLLUP 运算符生成的结果集类似于 CUBE 运算符生成的结果集。

 

1. 下面是 CUBE 和 ROLLUP 之间的具体区别:

CUBE 生成的结果集显示了所选列中值的所有组合的聚合。

ROLLUP 生成的结果集显示了所选列中值的某一层次结构的聚合。

 

2. ROLLUP 优点:

(1). ROLLUP 返回单个结果集,而 COMPUTE BY 返回多个结果集,而多个结果集会增加应用程序代码的复杂性。

(2). ROLLUP 可以在服务器游标中使用,而 COMPUTE BY 则不可以。

(3). 有时,查询优化器为 ROLLUP 生成的执行计划比为 COMPUTE BY 生成的更为高效。

 

二、创建测试数据


1. 创建资料

CREATE TABLE DEPARTMENT(   DEPARTMENT   CHAR (10),   EMPLOYEE     CHAR (6),   SALARY       INT); BEGIN INSERT INTO DEPARTMENT SELECT 'A','ZHANG',100 FROM DUAL; INSERT INTO DEPARTMENT SELECT 'A','LI',   200 FROM DUAL; INSERT INTO DEPARTMENT SELECT 'A','WANG', 300 FROM DUAL; INSERT INTO DEPARTMENT SELECT 'A','ZHAO', 400 FROM DUAL; INSERT INTO DEPARTMENT SELECT 'A','DUAN', 500 FROM DUAL; INSERT INTO DEPARTMENT SELECT 'B','DUAN', 600 FROM DUAL; INSERT INTO DEPARTMENT SELECT 'B','DUAN', 700 FROM DUAL;END;

 

2. 查看资料

 

三、ROLLUP案例


ROLLUP结果集中多了三条汇总信息:即部门A的合计,部门B的合计以及总合计。其中将部门B中的DUAN合计

 

四、CUBE案例


CUBE的结果集是在 ROLLUP结果集的基础上多了5行,这5行相当于在ROLLUP结果集上在union 上以员工 (即CUBE)为 GROUP BY的结果

 

Thanks and Regards

转载于:https://www.cnblogs.com/eastsea/p/4133949.html

你可能感兴趣的文章
viewport ——视区概念
查看>>
解决FusionCharts联动的中文乱码.
查看>>
山东理工ACM【1135】C/C++经典程序训练5---图形打印问题
查看>>
利用MAC 上的Safari调试iOS 的webView程序
查看>>
情商的管理
查看>>
html的meta标签的charset应该用UTF-8还是utf-8?
查看>>
由浅入深理解java集合(一)——集合框架 Collection、Map
查看>>
CSS强制英文、中文换行与不换行 强制英文换行
查看>>
.net向android的转型(1)
查看>>
页面跳转到Area区域连接
查看>>
C#socket客户端自己输入消息发送到服务端通信实现通信
查看>>
拓扑规则翻译函数(转)
查看>>
B和strong以及i和em的区别(转)
查看>>
[转载]SVN使用教程
查看>>
[Micropython]TPYBoard v10x拼插编程实验 点亮心形点阵
查看>>
android 获取所有SD卡目录
查看>>
A trick in loading Fixture to test django application
查看>>
发布一个参考tornado的高性能c++网络库:libtnet
查看>>
Android动画的实现 上
查看>>
android中完全退出当前应用程序的四种方法
查看>>