Oracle rollup和cube分析

2014-11-24 18:33:47 · 作者: · 浏览: 0

rollup是对group by的扩展,会进行小计和合计,而cube包含rollup,是粒度更精细的小计和合计。当只有一个字段时,rollup和cube是一样的。


可用grouping对rollup和cube进行测试:0看;1不看[看表示列有显示,不看表示没有显示]


① rollup


㈠ 什么都不看


㈡ 从左往右


┌ 先看第1个


│ 再看前2个


└ 后看前3个


② cube:0、1全排列


rollup


rollup后面指定的列以逗号分隔,rollup的计算结果和其后面指定的列的顺序有关,因为rollup的分组具有方向性。若指定n列,则有n+1种分组方式。可改变列的顺序,达到不同的业务需求。一定要牢记列的顺序对结果的影响!


例子:


解释:什么都不看(1,1);从左往右,先看第一个(0,1)


可以将不需要进行小计和合计的列移出rollup,要小计的留在rollup里面。


比如: