ROLLUP和CUBE的使用 及 区别

ROLLUP和CUBE的使用 及 区别

ID:42625725

大小:17.79 KB

页数:10页

时间:2019-09-19

ROLLUP和CUBE的使用 及 区别_第1页
ROLLUP和CUBE的使用 及 区别_第2页
ROLLUP和CUBE的使用 及 区别_第3页
ROLLUP和CUBE的使用 及 区别_第4页
ROLLUP和CUBE的使用 及 区别_第5页
资源描述:

《ROLLUP和CUBE的使用 及 区别》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、ORACLEROLLUP和CUBE的使用及区别ROLLUP,是GROUPBY子句的一种扩展,可以为每个分组返回小计记录以及为所有分组返回总计记录。CUBE,也是GROUPBY子句的一种扩展,可以返回每一个列组合的小计记录,同时在末尾加上总计记录。在文章的最后附上了相关表和记录创建的脚本。一、ROLLUP的使用:1、向ROLLUP传递一列SQL>selectdivision_id,sum(salary) 2 fromemployees2 3 groupbyrollup(division_id) 4

2、 orderbydivision_id;DIVSUM(SALARY)--------------BUS    1610000OPE    1320000SAL    4936000SUP    1015000       8881000SQL>再来看一下如果使用普通的GROUPBY,而没有ROLLUP是个什么情况SQL>selectdivision_id,sum(salary) 2 fromemployees2 3 groupbydivision_id 4 orderbydivision_id;

3、DIVSUM(SALARY)--------------BUS    1610000OPE    1320000SAL    4936000SUP    1015000可以看到,缺少了最后的统计信息。2、向ROLLUP传递多列SQL>selectdivision_id,job_id,sum(salary) 2 fromemployees2 3 groupbyrollup(division_id,job_id) 4 orderbydivision_id,job_id;DIVJOBSUM(SALAR

4、Y)-----------------BUSMGR     530000BUSPRE     800000BUSWOR     280000BUS        1610000OPEENG     245000OPEMGR     805000OPEWOR     270000OPE        1320000SALMGR    4446000SALWOR     490000SAL        4936000DIVJOBSUM(SALARY)-----------------SUPMGR 

5、    465000SUPTEC     115000SUPWOR     435000SUP        1015000           888100016rowsselected.可以看到,除了在最后有一个求和记录外,每个division_id分组也会有一个求和记录。那么我们现在交换一下ROLLUP中数据列的顺序,看看结果怎样SQL>selectjob_id,division_id,sum(salary) 2 fromemployees2 3 groupbyrollup(job_id,

6、division_id) 4 orderbyjob_id,division_id;JOBDIVSUM(SALARY)-----------------ENGOPE     245000ENG         245000MGRBUS     530000MGROPE     805000MGRSAL    4446000MGRSUP     465000MGR        6246000PREBUS     800000PRE         800000TECSUP     115000TE

7、C         115000JOBDIVSUM(SALARY)-----------------WORBUS     280000WOROPE     270000WORSAL     490000WORSUP     435000WOR        1475000           888100017rowsselected.结果类似,只不过是每一个job_id分组有一个求和记录罢了。二、CUBE的使用3、向CUBE传递一列SQL>selectdivision_id,sum(salar

8、y) 2 fromemployees2 3 groupbycube(division_id) 4 orderbydivision_id;DIVSUM(SALARY)--------------BUS    1610000OPE    1320000SAL    4936000SUP    1015000       8881000好像和ROLLUP没什么区别哦,呵呵,继续往下看。4、向CUBE传递多列SQL>selectjob_id,division_id,sum(salary) 2 frome

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。