在Oracle SQL中使用汇总替换多维数据集

时间:2010-02-25 17:29:56

标签: sql oracle

家庭作业我已经问过以下问题:

显示如何使用汇总而不是立方体来表达\ group by cube(a,b,c,d)。

我真的没有最微弱的线索如何做到这一点。我将从哪里开始,或者在哪里寻求帮助?

1 个答案:

答案 0 :(得分:4)

由于这是一项任务,我将指向very good article about GROUP BY, ROLLUP and CUBE Rob van Wijk {/ 3}}。

这里相关的两个等价关系是:

 GROUP BY CUBE ( set1, …, setn )
 ≡ GROUP BY GROUPING SETS (all possible combinations between () and (set1, …, setn) )

和笛卡尔积的类比:

GROUP BY a, ROLLUP(b)
≡ GROUP BY GROUPING SETS (a), GROUPING SETS ((b), ())
≡ GROUP BY GROUPING SETS ((a,b), (a))