oracle rollup,cube子句的应用举例

转载 2008年06月16日 13:10:00

oracle rollup,cube子句的应用举例;

rollup,cube子句在ORACLE中可以用来做交叉报表,如:如总计,小计类的功能很容易实现;但是必须和group by 子句一起使用。举例如下:

Oracle的Cube,Rollup子句的用法

产生交叉报表的情况,演示一个cube的例子

  create table test(sales varchar2(10),dest varchar2(10),revenue number);   insert into test values('smith','hangzhou',1000);   insert into test values('smith','wenzhou',2000);   insert into test values('allen','wenzhou',3000);   insert into test values('allen','wenzhou',4000);

 

SALES   DEST     REVENUE   ---------- ---------- ----------   smith   hangzhou     1000   smith   wenzhou     2000   allen   wenzhou     3000   allen   wenzhou     4000      比如说我们想统计每个sales的总销售收入,每个sales在各个城市的销售收入,另外还想知道每个城市所有sales的销售收入总额,以及所有sales的总收入   就像以下报表   名字   hangzhou wenzhou 总计

------- ------------ ----------- ---------   allen        7000    7000   smith  1000    2000    3000        1000    9000    10000        那我们运行下面这条语句就行了   select sales,dest,sum(revenue) from test group by cube(sales,dest);   SALES   DEST  SUM(REVENUE)   ---------- ---------- ------------             10000  所有sales的总销售收入         wenzhou  9000   所有sales在温州的销售收入        hangzhou  1000   所有sales在杭州的销售收入   allen        7000  allen的所有销售收入   allen   wenzhou  7000  allen在温州的销售收入   smith        3000  smith所有的销售收入   smith   wenzhou  2000  smith在温州的销售收入   smith   hangzhou 1000 smith在杭州的销售收入   8 rows selected.   如果不想统计城市这个维度,那么用rollup子句            hangzhou wenzhou   allen   7000   7000   smith   1000   2000    3000 10000    select sales,dest,sum(revenue) from test group by rollup(sales,dest)      SALES   DEST    SUM(REVENUE)   ---------- ---------- ------------------   allen    wenzhou    7000  allen在温州的销售收入   allen          7000  allen的所有销售收入   smith   wenzhou     2000 smith在温州的销售收入   smith   hangzhou   1000 smith在杭州的销售收入   smith          3000  smith 所有的销售收入                10000  所有sales的总销售收入

OLAP 支持---ROLLUP和CUBE语句 group by 的增强版本语句!可进行分层分组模式外 (小计与总计)

OLAP 支持 联机分析处理(On-Line Analytical Processing,简称 OLAP)具有在一条 SQL 语句中执行复杂数据分析的功能,从而通过减少对数据库的查...
  • mfkpie
  • mfkpie
  • 2015年07月12日 22:59
  • 1196

oracle分析函数——rollup和cube

原文见我得博客:http://lanjingling.github.io/2015/10/09/oracle-fenxihanshu-1/ 1、rollup介绍: group by后带roll...
  • liuxiao723846
  • liuxiao723846
  • 2015年10月10日 10:53
  • 467

oracle 高级分组 ROLLUP 和 CUBE 区别

用SCOTT/TIGER登录。 查询表EMP: 都不用: SELECT JOB, DEPTNO, SUM(SAL) FROM EMP GROUP BY JOB, DEPTNO; 结果: ...
  • feier7501
  • feier7501
  • 2014年03月19日 22:38
  • 611

SQL 中ROLLUP、CUBE的用法和区别

SQL 中ROLLUP 用法 ROLLUP 运算符生成的结果集类似于 CUBE 运算符生成的结果集。 下面是 CUBE 和 ROLLUP 之间的具体区别: CUBE 生成的结果集显示了所选列中值的...
  • shenqingkeji
  • shenqingkeji
  • 2016年10月19日 16:39
  • 1422

oracle的rollup操作---按照小组进行分组,同时求总计

rollup配合goup by使用,照小组进行分组,同时求总计。可以提供信息汇总功能(类似于"小计") ROLLUP在数据统计和报表生成过程中带来极大的便利   rollup操作---按...
  • haitaofeiyang
  • haitaofeiyang
  • 2016年08月28日 15:58
  • 1277

DB2分组函数ROLLUP和CUBE的使用

DB2的GROUP BY语句除了最基本的语法之外,还支持ROLLUP和CUBE语句。ROLLUP和CUBE在数据统计和报表生成过程中带来极大的便利,而且效率比起来GROUP+UNION组合方式效率高很...
  • guotianlaile
  • guotianlaile
  • 2016年05月13日 18:22
  • 1501

group by后加rollup子句的用法以及与cube和grouping sets子句的区别

group by后加rollup子句的用法 今天接触到了group by后带rollup子句的用法(真是丑死人了,接触ORACLE一两年了今天才知道还有这样一个用法),group by后带rollu...
  • haiross
  • haiross
  • 2014年12月23日 14:45
  • 981

【Oracle】ROLLUP和CUBE的“小计”功能

ROLLUP和CUBE都是“小计”功能。 配合上GROUP BY,可以进行分组小计。 配合例子进行说明: SELECT * FROM GROUP_TEST G; SELECT G.GROUP_...
  • East_MrChiu
  • East_MrChiu
  • 2017年04月16日 23:06
  • 154

Oracle中group by子句中cube的使用

本文转自http://blog.itpub.net/519536/viewspace-610997/ Oracle的CUBE与ROLLUP功能很相似,也是在数据统计分析领域的一把好手。  ...
  • xya_zone
  • xya_zone
  • 2016年03月24日 10:06
  • 1817

rollup和cube函数区别

使用rollup(field)和cube(field) 对单个field字段时区别不大,只是前者在最尾部进行汇总,后者在最顶部进行汇总,但存在多个字段时就呈现下面的不同之处。 1.未进行汇总 Sel...
  • Wilmazh
  • Wilmazh
  • 2016年10月11日 23:45
  • 227
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:oracle rollup,cube子句的应用举例
举报原因:
原因补充:

(最多只允许输入30个字)