yangtingkun
===========================================================
数据仓库中的聚集SQL——数据仓库手册
===========================================================

数据库中经常用到聚集函数。在数据仓库中,更是经常要进行聚集操作,Oracle除了最基本的GROUP BY以外,还提供了ROLLUPCUBE等函数。

 


ROLLUP

GROUP BY A, B会对AB出现的每种可能性进行分组。而GROUP BY ROLLUP(A, B)会对AB出现的每种可能性分组,A的每种可能性分组,最后计算所有的情况。

CUBE

ROLLUP类似,GROUP BY CUBE(A, B)会对AB出现的每种可能性分组,A的每种可能性分组,B的每种可能性分组,最后计算所有的情况。

Oracle为了解决引入ROLLUPCUBE后,汇总和NULL值无法区分的情况,提供了GROUPINGGROUPING_IDGROUP_ID三个函数。

Oracle提供的GROUPING SET语法,可以方便对指明任何维度的分组。

Concatenated Grouping:可以方便的快速生成大批量的GROUPING SET分组,避免了手工一一指定GROUPING SET的大量分组。

使用WITH子句可以预先将多次用到查询保存在临时表空间中,使得查询仅执行一回,来提高查询的性能。

使用聚集函数需要注意,ROLLUPCUBE最多只能包括255列,不过一般情况下足够用了。

yangtingkun 发表于:2005.05.27 19:05 ::分类: ( 读书笔记 ) ::阅读:(1392次) :: 评论 (0)

发表评论
标题

在此添加评论
表情符号: smile laughing tongue angry crying sad wassat wink

称呼

邮箱地址(可选)

个人主页(可选)

 authimage


切换风格
新闻聚合
博客日历
文章归档...
最新发表...
最新评论...
最多阅读文章...
最多评论文章...
博客统计...
Blog信息
网站链接...