使用CUBE和ROLLUP对数据进行汇总
2010-10-06 11:31
330 查看
想要找一个既快捷又有效的方法来对您存储在数据库里的数据进行汇总分析吗?SQL语言中的ROLLUP和CUBE命令提供了一个非常有用的工具,可以让您快速深入地获取数据的各种内在性质。ROLLUP和CUBE是SQL的扩展命令,可以在SQL Server 6.5(及以上版本)和Oracle 8i(及以上版本)中使用。
本文会为大家介绍如何将CUBE命令加载到SQL当中。我们将以北京的一家宠物超市的货源供应链为例,假设其数据表中包含了宠物商店供应链中有货源的宠物数量和类型:
表Pets
作为这家宠物超市的老板,我们希望能够迅速了解关于存货各个方面的情况。我们可以雇一个SQL程序员,编写一些查询命令好获得我们需要的确切数据。还好,我们的数据集不是很大,所以我们可以兴致勃勃地站在一旁查看这些原始数据。使用CUBE命令就能够切实满足我们对数据的渴求。以下就是相应的SQL实例:
执行该查询返回的结果如下:
一下子多出了这么多的数据!请注意表中出现了很多额外的分组包括NULL行,这些绝不会出现在标准的GROUP BY命令所返回的结果中。它们都是CUBE指令所添加的汇总项。分析上面的结果数据,你会发现我们的供应链上还有27只猫、31只狗和5只龟,由三个不同地区的商店提供。山东店库存里的宠物数量最多,包含了目录里的30只宠物。
我们对每个地区店的宠物总数并不是很感兴趣,我们只是要一个包含每种类型宠物的来源及其总数的数据。使用ROLLUP 操作符代替CUBE 操作符就能排除掉那些在第一列包含了NULL 的结果数据。
SQL语法如下:
结果如下:
本文会为大家介绍如何将CUBE命令加载到SQL当中。我们将以北京的一家宠物超市的货源供应链为例,假设其数据表中包含了宠物商店供应链中有货源的宠物数量和类型:
表Pets
Type | Store | Number |
狗 | 山东 | 12 |
猫 | 山东 | 18 |
龟 | 天津 | 4 |
狗 | 天津 | 14 |
猫 | 内蒙古 | 9 |
狗 | 内蒙古 | 5 |
龟 | 内蒙古 | 1 |
SELECT Type, Store, SUM(Number) as Number FROM Pets GROUP BY type,store WITH CUBE |
Type | Store | Number |
猫 | 山东 | 18 |
猫 | 内蒙古 | 9 |
猫 | NULL | 27 |
狗 | 山东 | 12 |
狗 | 内蒙古 | 5 |
狗 | 天津 | 14 |
狗 | NULL | 31 |
龟 | 内蒙古 | 1 |
龟 | 天津 | 4 |
龟 | NULL | 5 |
NULL | NULL | 63 |
NULL | 山东 | 30 |
NULL | 内蒙古 | 15 |
NULL | 天津 | 18 |
我们对每个地区店的宠物总数并不是很感兴趣,我们只是要一个包含每种类型宠物的来源及其总数的数据。使用ROLLUP 操作符代替CUBE 操作符就能排除掉那些在第一列包含了NULL 的结果数据。
SQL语法如下:
SELECT Type, Store, SUM(Number) as Number FROM Pets GROUP BY type,store WITH ROLLUP |
Type | Store | Number |
猫 | 山东 | 18 |
猫 | 内蒙古 | 9 |
猫 | NULL | 27 |
狗 | 山东 | 12 |
狗 | 内蒙古 | 5 |
狗 | 天津 | 14 |
狗 | NULL | 31 |
龟 | 内蒙古 | 1 |
龟 | 天津 | 4 |
龟 | NULL | 5 |
NULL | NULL | 63 |
相关文章推荐
- 使用CUBE和ROLLUP对数据进行汇总
- 使用CUBE和ROLLUP对数据进行汇总
- 使用CUBE和ROLLUP对数据进行汇总
- 使用CUBE和ROLLUP对数据进行汇总
- 使用CUBE和ROLLUP对数据进行汇总
- 使用CUBE和ROLLUP对数据进行汇总(转载)
- 使用CUBE和ROLLUP对数据进行汇总
- 使用CUBE和ROLLUP对数据进行汇总
- 数据库——cube和rollup的使用与区别<使用rollup或cube通过交叉列可产生高级汇总结果集>
- SQL Server中汇总功能的使用GROUPING,ROLLUP和CUBE
- SQLServer中汇总功能的使用GROUPING,ROLLUP和CUBE
- SQL Server中汇总功能的使用GROUPING,ROLLUP和CUBE
- android平台上使用MINA进行数据传输之异常汇总
- SQLServer中汇总功能的使用GROUPING,ROLLUP和CUBE
- SQL SERVER2000教程-第五章 处理数据 第七节 使用COMPUTE和COMPUTE BY对数据进行汇总
- sqlserver中的union,cube,rollup,cumpute运算符(汇总信息使用)
- 使用CUBE汇总数据
- [转载 from SQL Server 2000 Help] SQL Server中汇总功能的使用GROUPING,ROLLUP和CUBE
- 发一个使用 GridView 对数据小类进行分别汇总的例子