zoukankan      html  css  js  c++  java
  • Oracle分组函数cube VS rollup

    分析函数cube和rollup魅力
    首先请看下面例子
    1)创建表
    create table group_test (group_id int, job varchar2(10), name varchar2(10), salary int);
    2)初始化表
    insert into group_test values (10,'Coding', 'Bruce',1000);
    insert into group_test values (10,'Programmer','Clair',1000);
    insert into group_test values (10,'Architect', 'Gideon',1000);
    insert into group_test values (10,'Director', 'Hill',1000);

    insert into group_test values (20,'Coding', 'Jason',2000);
    insert into group_test values (20,'Programmer','Joey',2000);
    insert into group_test values (20,'Architect', 'Martin',2000);
    insert into group_test values (20,'Director', 'Michael',2000);

    insert into group_test values (30,'Coding', 'Rebecca',3000);
    insert into group_test values (30,'Programmer','Rex',3000);
    insert into group_test values (30,'Architect', 'Richard',3000);
    insert into group_test values (30,'Director', 'Sabrina',3000);

    insert into group_test values (40,'Coding', 'Samuel',4000);
    insert into group_test values (40,'Programmer','Susy',4000);
    insert into group_test values (40,'Architect', 'Tina',4000);
    insert into group_test values (40,'Director', 'Wendy',4000);

    commit;

    select t.group_id, sum(t.salary) from group_test t group by t.group_id order by 1;

     3)查看rollup函数
    select t.group_id, sum(t.salary) from group_test t group by rollup(t.group_id)order by 1; 
     select t.group_id,job,  sum(t.salary) from group_test t group by rollup(t.group_id,job) order by 1;  

    4)查看cube函数
    select t.group_id, sum(t.salary) from group_test t group by cube(t.group_id)order by 1;

     由此可见rollup以及cude函数是group by函数的扩展,方便用来做小计的分析函数
    仔细观察两个函数的细微差别
    rollup(a,b)   统计列包含:(a,b)、(a)、()
    rollup(a,b,c) 统计列包含:(a,b,c)、(a,b)、(a)、()
    ……以此类推ing……

    cube(a,b)     统计列包含:(a,b)、(a)、(b)、()
    cube(a,b,c)   统计列包含:(a,b,c)、(a,b)、(a,c)、(b,c)、(a)、(b)、(c)、()
    ……以此类推ing……
     
    替换成原始的group by字句实际就是union all了不区分ID的一个小汇总。  
  • 相关阅读:
    用 Timer Applet 做 GTD 料理
    Envy-便当的显卡驱动布置剧本
    DB2 9 运用开发(733 测验)认证指南,第 1 部分: 数据库工具与编程办法(1)
    Sabayon:经管 GNOME 用户的设置
    应用 KScope 阅读并编纂你的源代码
    Cheese-从摄像头捕捉照片和视频
    Kaffeine Player:功用富厚的媒体播放器
    SpeedCrunch:很酷的桌面较量争论器
    DB2 9 根蒂根基(730 测验)认证指南,第 7 部分: XQuery 简介(6)
    Conduit 0.3.2 颁布
  • 原文地址:https://www.cnblogs.com/longjshz/p/4537298.html
Copyright © 2011-2022 走看看