您的位置:首页 > 数据库 > Oracle

Oracle group by高级用法之rollup

2014-03-19 16:22 429 查看
最近一直给项目组的开发人员进行SQL优化,发现他们对一些group by的高级都不是太会用。今天我就做几个测试,来演示rollup的用途。

Oracle的GROUP BY语句除了最基本的语法外,还支持ROLLUP和CUBE语句。如果是ROLLUP(A, B, C)的话,首先会对(A、B、C)进行GROUP BY,然后对(A、B)进行GROUP BY,然后是(A)进行GROUP BY,最后对全表进行GROUP BY操作。如果是GROUP BY CUBE(A, B, C),则首先会对(A、B、C)进行GROUP
BY,然后依次是(A、B),(A、C),(A),(B、C),(B),(C),最后对全表进行GROUP BY操作。这个介绍是网上看到的,引用下 哈哈。



上面是基本的group by 大家好看数据结构啊





通过上面的2个例子。我们可以清楚的看到roll的规律了吧

那么rollup的效率怎么样呢,看看执行计划吧



执行计划的效率还是不错的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: