设为首页 加入收藏

TOP

浅谈with cube与with rollup之区别(一)
2014-11-24 01:24:20 来源: 作者: 【 】 浏览:11
Tags:浅谈 with cube rollup 区别
浅谈with cube与with rollup之区别
最近这段时间一直在看SQL Server视频,虽然了解了SQL Server运行环境、语言基础和设计基础,但还没有真正的转化为自己的知识。一方面,是刚接触 数据库,另一方面,就是自己只是看视频、记笔记,没有去思考和总结。下面是我对group by字句中with cube和with rollup的总结:
当需要对数据库数据进行分类统计的时候,往往会用上group by进行分组。而在group by后面还可以加入with cube和with rollup等关键字对数据进行汇总。那什么时候用with cube?什么时候用with rollup呢
一、两者的区别
CUBE 生成的结果集显示了所选列中值的所有组合的聚合。
ROLLUP 生成的结果集显示了所选列中值的某一层次结构的聚合。
二、两者的用法(实例说明)
www.2cto.com
CUBE:除了返回GROUP BY子句指定的列外,还返回按组统计的行。返回的结果先按分组的第一个条件排序显示,再按第二个条件列排序显示,以此类推。统计行包括了GROUP BY 子句指定的列的各种组合的数据统计
Select 所属部门,性别,AVG(年龄) FROM 导师表 Group by 所属部门,性别 With cube
所属部门
性别
年龄
纪律部
24
纪律部
22
纪律部
null
23纪律部成员的平均年龄
www.2cto.com
学习部
25
学习部
22
学习部
null
24学习部成员的平均年龄
博客检查委员会
24
博客检查委员会
22
博客检查委员会
null
23博委所有成员的平均年龄
null
null
23所有成员的平均年龄
null
22所有女成员的平均年龄
www.2cto.com
null
24所有男成员的平均年龄
ROLLUP:与CYBE不同的是,此选项对GROUP BY子句中的列顺序敏感,它只返回第一个分组条件指定的列的统计行,改变列的顺序会使返回的结果的行数发生改变。
Select 所属部门,性别,AVG(年龄) FROM 导师表 Group by 所属部门,性别 With rollup
所属部门
性别
年龄
纪律部
24
纪律部
22
纪律部
null
23纪律部成员的平均年龄
www.2cto.com
学习部
25
学习部
22
学习部
null
24学习部成员的平均年龄
博客检查委员会
24
博客检查委员会
22
博客检查委员会
www.2cto.com
null
23博委所有成员的平均年龄
null
null
23所有成员的平均年龄
null
22
null
24
注:CUBE显示所有组合而ROLLUP则不会显示后两行
还有一个比较简单的实例,拿来和大家分享一下:
简单表 Inventory 中包含:
Item Color Quantity
-------------------- -------------------- --------------------------
Table Blue 124
Table Red 223
Chair Blue 101
Chair Red 210
www.2cto.com
下列查询将生成小计报表:
SELECT CASE WHEN (GROUPING(Item) = 1) THEN 'ALL '
ELSE ISNULL(Item, 'UNKNOWN ')
END AS Item,
CASE WHEN (GROUPING(Color) = 1) THEN 'ALL '
ELSE ISNULL(Color, 'UNKNOWN ')
END AS Color,
SUM(Quantity) AS QtySum
FROM Inventory
GROUP BY Item, Color WITH ROLLUP
Item Color QtySum
-------------------- -------------------- --------------------------
Chair Blue 101.00
Chair Red 210.00
Chair ALL 311.00 www.2cto.com
Table Blue 124.00
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇在sqlserver中with(nolock)详解 下一篇SQL with NUll处理,Join系列,betw..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: