sql中的cube和rollup
来源:互联网 发布:q宠大乐斗手机辅助软件 编辑:程序博客网 时间:2024/05/31 19:07
使用CUBE,首先要了解GROUP BY。 其实CUBE和ROLLUP区别不太大,只是在基于GROUP BY 子句创建和汇总分组的可能的组合上有一定差别,CUBE将返回的更多的可能组合。如果在GROUP BY子句中有N个列或者是有N个表达式的话,SQLSERVER在结果集上会返回2的N-1次幂个可能组合。 CUBE和ROLLUP之间的区别在于: ROLLUP生成的结果集显示了所选列中值的某一层次结构的聚合 COPY了一个例子,首先用ROLLUP 查询语句: Select cust_id,product_code,sum(qty) as quantity From invoices Where cust_id IN (4,5) Group Bycust_id, product_code WITH RollupOrder By cust_id 查询结果: 如果查询语句中的ROLLUP关键字更改为CUBE,就会多出有关产品的信息
CUBE 生成的结果集显示了所选列中值的所有组合的聚合。
ROLLUP就是将GROUP BY后面的第一列名称求总和,而其他列并不要求
而CUBE则会将每一个列名称都求总和
cust_id product_code quantity
------- -------------- -------
NULL NULL 10
4 5 3
4 6 3
4 NULL 6
5 5 4
5 NULL 4
第一行是4,5买的所有产品的数量
第二行是4买5产品的数量
第三行是4买6产品的数量
第四行是4买所有产品的数量
第五行是5买5产品的数量
第六行是5买所有产品的数量
查询结果:
cust_id product_code quantity
------- -------------- -------
NULL NULL 10
NULL 5 7
NULL 6 3
4 5 3
4 6 3
4 NULL 6
5 5 4
5 NULL 4
第2行是所有顾客买5产品的数量
第3行是所有顾客买6产品的数量
ROLLUP操作的结果集具有类似 COMPUTE BY所返回结果集的功能;然而ROLLUP 具有下列优点:
ROLLUP返回单个结果集;COMPUTE BY返回多个结果集,而多个结果集会增加应用程序代码的复杂性。
ROLLUP可以在服务器游标中使用;COMPUTE BY不可以。
有时,查询优化器为ROLLUP生成的执行计划比为 COMPUTE BY 生成的更为高效。
- sql中的cube和rollup
- SQL 研究 - Cube 和 RollUp
- SQL SERVER中的union,cube,rollup和cumpute运算符
- SQL SERVER中的union,cube,rollup和cumpute运算符
- Sql Server中的CUBE与ROLLUP
- SQL中CUBE和ROLLUP的用法
- sql 的cube rollup 和grouping
- Sql + rollup + cube
- Sql + rollup + cube
- sql rollup and cube
- Oracle中的rollup,cube
- ROLLUP和CUBE
- ROLLUP和CUBE
- ROLLUP和CUBE语句。
- ROLLUP和CUBE语句
- ROLLUP和CUBE语句
- ROLLUP和CUBE
- ROLLUP和CUBE语句
- 人生哲理54条(转载)
- 又一个开始
- MySQL的安装及可视化开发工具[图](转)
- windows怎样查看端口号被哪个程序占用了
- 使用CUBE和ROLLUP对数据进行汇总
- sql中的cube和rollup
- 刚建了CSDN号大家来看看
- TOMCAT6中配置WEBDAV
- asp.net
- 这周的任务很多
- 个人介绍
- 终结符和非终结符
- FormClosing(关闭)事件
- 神速java路