转自:https://www.cnblogs.com/nikyxxx/archive/2012/11/27/2791001.html 聚集函数:GROUPING 用于汇总数据用的运算符: ROLLUP 1.用 CUBE 汇总数据 CUBE 运算符生成的结果集是多维数据集.多维数据集是事实数据的扩展,事实数据即记录个别事件的数据.扩展建立在用户打算分析的列上.这些列被称为维.多维数据集是一个结果集,其中包含了各维度的所有可能组合的交叉表格. CUBE 运算符在 SELECT 语句的 GROUP B…
1.用 CUBE 汇总数据 CUBE 运算符生成的结果集是多维数据集.多维数据集是事实数据的扩展,事实数据即记录个别事件的数据.扩展建立在用户打算分析的列上.这些列被称为维.多维数据集是一个结果集,其中包含了各维度的所有可能组合的交叉表格. CUBE 运算符在 SELECT 语句的 GROUP BY 子句中指定.该语句的选择列表应包含维度列和聚合函数表达式.GROUP BY 应指定维度列和关键字 WITH CUBE.结果集将包含维度列中各值的所有可能组合,以及与这些维度值组合相匹配的基础行中的聚…
SQLSERVER中的ALL.PERCENT.CUBE关键字.ROLLUP关键字和GROUPING函数 先来创建一个测试表 USE [tempdb] GO )) GO INSERT INTO [#temptb] ( [id], [NAME] ) ,'中国' UNION ALL ,'中国' UNION ALL ,'英国' UNION ALL ,'英国' UNION ALL ,'美国' UNION ALL ,'美国' UNION ALL SELECT null, '法国' UNION ALL ,'法…
偶然在网上看到一篇文章,讲到数据汇总,提到了CUBE,感觉有些晦涩,想试着自己表述一下.同时,个人也认为CUBE还是很有用的,对SQL或数据分析感兴趣的小伙伴不妨了解一下,或许有用呢! 先设定个需求,想要分别按[性别].[籍贯].[年龄]或[成绩级别]统计下表中学生的数量,再进一步,需要将这些条件相结合统计,同时满足某两项或更多条件的学生数量.数据表格如下: 我们可以逐层来理解[GROUP BY][WITH ROLLUP][WITH CUBE]如何来完成数据汇总 第一层:[GROUP BY] […
SQLSERVER中的假脱机spool 我发现网上对于假脱机的解释都非常零散,究竟假脱机是什么? 这几天在家里研究了一下,收集了很多网上的资料 假脱机是中文的翻译,而英文的名字叫做 spool 在徐老师写的<SQLSERVER企业级平台管理实践>里提到了一下假脱机 在SQLSERVER I/O问题的那一节 在性能监视器里,有一个计数器“worktables/sec” : 每秒创建的工作表数.例如,工作表可用于存储查询假脱机(query spool),LOB变量,XML变量,表变量,游标的临时结…
要使用CUBE,首先要了解GROUP BY. 其实CUBE和ROLLUP区别不太大,只是在基于GROUP BY 子句创建和汇总分组的可能的组合上有一定差别,CUBE将返回的更多的可能组合.如果在GROUP BY子句中有N个列或者是有N个表达式的话,SQLSERVER在结果集上会返回2的N-1次幂个可能组合. CUBE和ROLLUP之间的区别在于: CUBE 生成的结果集显示了所选列中值的所有组合的聚合. ROLLUP生成的结果集显示了所选列中值的某一层次结构的聚合 ROLLUP就是将GROUP…
其实还是写一个Demo 比较好 USE tempdb IF OBJECT_ID( 'dbo.T1' , 'U' )IS NOT NULL BEGIN DROP TABLE dbo.T1; END; GO CREATE TABLE dbo.T1 ( id INT , productName ) , price MONEY , num INT , amount INT , operatedate DATETIME ) GO DECLARE @i INT DECLARE @rand MONEY DEC…
原文:SQL点滴18-SqlServer中的merge操作,相当地风骚 今天在一个存储过程中看见了merge这个关键字,第一个想法是,这个是配置管理中的概念吗,把相邻两次的更改合并到一起.后来在technet上搜索发现别有洞天,原来是另外一个sql关键字,t-sql的语法还是相当地丰富的.本篇是一篇学习笔记,没有什么新意,这里给出technet上的地址连接供大家参考权威:http://technet.microsoft.com/zh-cn/library/bb510625.aspx,这里具体的语…
SqlServer中的merge操作(转载)   今天在一个存储过程中看见了merge这个关键字,第一个想法是,这个是配置管理中的概念吗,把相邻两次的更改合并到一起.后来在technet上搜索发现别有洞天,原来是另外一个sql关键字,t-sql的语法还是相当地丰富的.本篇是一篇学习笔记,没有什么新意,这里给出technet上的地址连接供大家参考权威:http://technet.microsoft.com/zh-cn/library/bb510625.aspx,这里具体的语法不去深究了,只是把几…
select cols.name,cols.id,objs.name,objs.id from syscolumns cols INNER JOIN sysobjects objs on cols.id = objs.id where cols.name = 'GroupID' and objs.xtype = 'U' Sqlserver中系统表: 相关连接http://www.cr173.com/html/19592_1.htmlsysaltfiles 主数据库 保存数据库的文件 syscha…