rollup与cube分析函数学习总结
2011-08-16 15:32
441 查看
cube: 有2的n次方种组合:
select empno,ename,job,
sum(sal),
grouping(empno) gempno,
grouping(ename) gename,
grouping(job) gjob
from scott.emp group by cube(empno,ename,job)
order by gempno,gename,gjob;
等效于:以上SQL总共有8种组合
empno,ename,job
empno,ename,null
empno,null,job
empno,null,null
null,ename,job
null,ename,null
null,null,job
null,null,null
select empno,ename,job,0 gempno,0 gename,0 gjob, sum(sal) from scott.emp group by empno,ename,job
union all
select empno,ename,null,0 gempno,0 gename,1 gjob ,sum(sal) from scott.emp group by empno,ename
union all
select empno,null,job,0 gempno,1 gename,0 gjob ,sum(sal) from scott.emp group by empno,job
union all
select empno,null,null,0 gempno,1 gename,1 gjob,sum(sal) from scott.emp group by empno
union all
select null,ename,job,1 gempno,0 gename,0 gjob,sum(sal) from scott.emp group by ename,job
union all
select null,ename,null,1 gempno,0 gename,1 gjob,sum(sal) from scott.emp group by ename
union all
select null,null,job,1 gempno,1 gename,0 gjob,sum(sal) from scott.emp group by job
union all
select null,null,null,1 gempno,1 gename,1 gjob,sum(sal) from scott.emp
order by gempno,gename,gjob;
rollup:有2*n种组合,从左到右的方法
select empno,ename,job,
sum(sal),
grouping(empno) gempno,
grouping(ename) gename,
grouping(job) gjob
from scott.emp group by rollup(empno,ename,job)
order by gempno,gename,gjob;
等效于:以上SQL总共有4种组合
empno,ename,job
empno,ename,null
empno,null,null
null,null,null
select empno,ename,job,0 gempno,0 gename,0 gjob, sum(sal) from scott.emp group by empno,ename,job
union all
select empno,ename,null,0 gempno,0 gename,1 gjob ,sum(sal) from scott.emp group by empno,ename
union all
select empno,null,null,0 gempno,1 gename,1 gjob,sum(sal) from scott.emp group by empno
union all
select null,null,null,1 gempno,1 gename,1 gjob,sum(sal) from scott.emp
order by gempno,gename,gjob;
select empno,ename,job,
sum(sal),
grouping(empno) gempno,
grouping(ename) gename,
grouping(job) gjob
from scott.emp group by cube(empno,ename,job)
order by gempno,gename,gjob;
等效于:以上SQL总共有8种组合
empno,ename,job
empno,ename,null
empno,null,job
empno,null,null
null,ename,job
null,ename,null
null,null,job
null,null,null
select empno,ename,job,0 gempno,0 gename,0 gjob, sum(sal) from scott.emp group by empno,ename,job
union all
select empno,ename,null,0 gempno,0 gename,1 gjob ,sum(sal) from scott.emp group by empno,ename
union all
select empno,null,job,0 gempno,1 gename,0 gjob ,sum(sal) from scott.emp group by empno,job
union all
select empno,null,null,0 gempno,1 gename,1 gjob,sum(sal) from scott.emp group by empno
union all
select null,ename,job,1 gempno,0 gename,0 gjob,sum(sal) from scott.emp group by ename,job
union all
select null,ename,null,1 gempno,0 gename,1 gjob,sum(sal) from scott.emp group by ename
union all
select null,null,job,1 gempno,1 gename,0 gjob,sum(sal) from scott.emp group by job
union all
select null,null,null,1 gempno,1 gename,1 gjob,sum(sal) from scott.emp
order by gempno,gename,gjob;
rollup:有2*n种组合,从左到右的方法
select empno,ename,job,
sum(sal),
grouping(empno) gempno,
grouping(ename) gename,
grouping(job) gjob
from scott.emp group by rollup(empno,ename,job)
order by gempno,gename,gjob;
等效于:以上SQL总共有4种组合
empno,ename,job
empno,ename,null
empno,null,null
null,null,null
select empno,ename,job,0 gempno,0 gename,0 gjob, sum(sal) from scott.emp group by empno,ename,job
union all
select empno,ename,null,0 gempno,0 gename,1 gjob ,sum(sal) from scott.emp group by empno,ename
union all
select empno,null,null,0 gempno,1 gename,1 gjob,sum(sal) from scott.emp group by empno
union all
select null,null,null,1 gempno,1 gename,1 gjob,sum(sal) from scott.emp
order by gempno,gename,gjob;
相关文章推荐
- Hive分析函数之grouping sets、cube、rollup学习
- oracle分析函数系列之ROLLUP和CUBE
- Oracle分析函数八——CUBE,ROLLUP
- oracle提供的分析函数 cube(),rollup(),grouping sets()-----关注grouping sets用法及原理
- oracle分析函数——rollup和cube
- Oracle select --分析函数cube(),rollup()
- Oracle分析函数八——CUBE,ROLLUP
- Oracle分析函数八——CUBE,ROLLUP
- Oracle分析函数八——CUBE,ROLLUP
- oracle 分析函数 之 rollup,cube
- Oracle分析函数八——CUBE,ROLLUP
- 分析函数——rollup,cube,rank,partition by
- Oracle分析函数八——CUBE,ROLLUP
- Oracle分析函数 — sum, rollup, cube, grouping用法
- ORACLE 分析函数详解: RollUP,Cube
- 学习c++对类的6个成员函数的简单总结
- C/C++函数学习总结
- c&c++反汇编与逆向分析学习笔记(4)--启动函数和用户入口
- Android开发学习总结(五)——Android应用目录结构分析
- oracle rollup和cube分析