网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > 数据库技术 > Oracle > PL/SQL > cube子句的用法  

cube子句的用法

2005-11-16  作者:BitsCN整理  来源:中国网管联盟  点评 投稿 收藏


  cube子句在dw环境用的比较多,特别是在产生交叉报表的情况,演示一个cube的例子
  SQL 10G>create table test(sales varchar2(10),dest varchar2(10),revenue number);
  Table created.
  SQL 10G>insert into test values('smith','hangzhou',1000);
  1 row created.
  SQL 10G>insert into test values('smith','wenzhou',2000);
  1 row created.
  SQL 10G>insert into test values('allen','wenzhou',3000);
  1 row created.
  SQL 10G>insert into test values('allen','wenzhou',4000);
  1 row created.
  SQL 10G>commit;
  Commit complete.
  
  SQL 10G>select * from test;
  SALES   DEST     REVENUE
  ---------- ---------- ----------
  smith   hangzhou     1000
  smith   wenzhou     2000
  allen   wenzhou     3000
  allen   wenzhou     4000
  
  比如说我们想统计每个sales的总销售收入,每个sales在各个城市的销售收入,另外还想知道每个城市所有sales的销售收入总额,以及所有sales的总收入
  

网管u家bitscn.net


  就像以下报表
      hangzhou wenzhou
  allen          7000   7000
  smith  1000    2000   3000
      1000    9000   10000
  
  
  那我们运行下面这条语句就行了
  SQL 10G>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

网管网www.bitscn.com


  smith   1000   2000   3000
                   10000
  
  SQL 10G>select sales,dest,sum(revenue) from test group by rollup(sales,dest)
   2 ;
  SALES   DEST    SUM(REVENUE)
  ---------- ---------- ------------
  allen   wenzhou    7000 allen在温州的销售收入
  allen             7000 allen的所有销售收入
  smith   wenzhou   2000 smith在温州的销售收入
  smith   hangzhou   1000 smith在杭州的销售收入
  smith             3000 smith所有的销售收入
                10000 所有sales的总销售收入
  6 rows selected.
TAGs用法   收入   销售   所有   sales   SQL10G   温州   1rowcreated.    
 上一篇:oracle里的交叉sql语句写法   下一篇:分析函数lag小技巧
相关文章列表
cube子句的用法 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
1.PL/SQL - 嵌套游标 cursor-PLSQL
2.用一个实例讲解Oracle数据库的PL/SQL语句
3.PL/SQL----触发器-PLSQL
4.mysql存储过程写法—动态参数运用-PLSQL
5.PL/SQL Developer导出分区索引脚本-PLSQL
6.PL/SQL collection— table() 函数-PLSQL
7.SQL Server 2005 中的架构与用户-PLSQL
8.Oracle数据库维护常用SQL语句集合(2)-P
9.Oracle数据库维护常用SQL语句集合(3)-P
10.再议SQL Server临时表和表变量-PLSQL
最新推荐文章:
1.与数据库无关的处理放到数据库以外来实现
2.Oracle 10g第2版新特性之SQL和PL/SQL
3.通过PL/SQL访问Web Services
4.菜鸟学oracle - 用PL/SQL画直方图
5.重新编译PLSQL中无效对象或指定对象
6.Oracle高级技巧
7.深入了解Oracle 10g新的多重集运算符
8.在SQL中删除重复记录(多种方法)
9.Oracle:PL/SQL中怎样使用Array
10.数据库手册:速查Oracle函数列表
网管论坛交流:
·大家来开心一下吧---看了会很开心的东西-
·中国人不可不知道的知识
·@@小鹏◎◎小鹏同志与某位女明星亲密接触
·◎◎小鹏◎◎发现不明生物,居然正在交配
·[图文]^^^版主是什么?????
·泡论坛的女人是好女人
·做个“水性杨花”的女人
·献给mm俱乐部的所有mm
·深圳一集团企业电脑基础应用培训教程
·■■■■十一遊玩照■■■■■