T-SQL 多个分组集共有三种 GROUPING SETS, CUBE, 以及ROLLUP, 其中 CUBE和ROLLUP可以当做是GROUPING SETS的简写版 示例数据库下载: http://files.cnblogs.com/files/haseo/TSQL2012.rar GROUPING SETS 列出所有你设置的分组集 SELECT shipperid, YEAR(shippeddate) AS shipyear, COUNT(*) AS numorders FROM Sales…
分组集(Grouping Sets)是多个分组的并集,用于在一个查询中,按照不同的分组列对集合进行聚合运算,等价于对单个分组使用“union all”,计算多个结果集的并集.使用分组集的聚合查询,返回的select 子句相同,由于select子句只能引用分组列,因此,在单个分组中缺失的分组列,TSQL返回NULL值. TSQL使用 group by 子句分组,有4种不同的语法: group by a,b group by rollup(a,b) group by cube(a,b) group…
作者:Itzik Ben-Gan  翻译:张洪举 此文摘自作者的<Microsoft SQL Server 2012 T-SQL基础>. 分组集就是你据以分组的一个属性集.传统上,SQL中的单个聚合查询定义一个单个分组集.例如,下面的四个查询每个定义了一个单个分组集. SELECT empid, custid, SUM(qty) AS sumqty FROM dbo.Orders GROUP BY empid, custid; SELECT empid, SUM(qty) AS sumqty…
Group by分组函数的自定义,与group by配合使用可更加灵活的对结果集进行分组,Grouping sets会对各个层级进行汇总,然后将各个层级的汇总值union all在一起,但却比单纯的group by + union all 效率要高 1 创建数据 CREATE TABLE employee ( name NVARCHAR2(), gender ), country NVARCHAR2(), department NVARCHAR2(), salary ) ); ); ); );…
GROUP BY      GROUPING SETS() 后面将还会写学习 with cube,  with rollup,以及将它们转换为标准的GROUP BY的子句GROUP SET(), CUBE的用法(虽然MSSQL以后将会去掉) 这里面的大小写混淆来写不规范,以后还是习惯使用大写吧,有时是为节省宽度空间用小写,标准还是用大写SQL的关键字 --group by 子句中的cube, rollup, --这样理解: cube立方(既然是立方,就是变多了), rollup卷起,包起来(按字…
oracle group by中rollup和cube的区别: Oracle的GROUP BY语句除了最基本的语法外,还支持ROLLUP和CUBE语句.CUBE ROLLUP 是用于统计数据的. 实验使用SCOTT用户的EMP表测试 1.仅使用GROUP BY分组,GROUP BY后的单列可以用括号,也可以不用.以下两种写法作用一样: SCOTT@bys1>SELECT deptno, avg(sal) FROM emp  GROUP BY deptno; SCOTT@bys1>SELECT…
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 ,'法…
在我们制作报表的时候常常需要分组聚合.多组聚合和总合.如果通过另外的T-SQL语句来聚合难免性能太差.如果通过报表工具的聚合功能虽说比使用额外的T-SQL语句性能上要好很多,不过不够干脆,还是需要先生成整个结果集然后再聚合,而且最最重要的时很多情况下报表的聚合功能可能没办法达到我们需要的效果.GROUPING SETS, CUBE, ROLLUP, GROUPING, GROUPING_ID这几个聚合函数的作用就是在原始语句的基础上完成很多像财务报表需要的聚合功能. GROUPING SETS相…
介绍 对于任何人而言,用T-SQL语句来写聚会查询都是工作中重要的一环.我们大家也都很熟悉GROUP BY子句来实现聚合表达式,但是如果打算在一个结果集中包含多种不同的汇总结果,可能会比较麻烦.我将举例展示给大家使用GROUPING SETS操作符来完成这个"混合的结果集". 或许当我们在打算分析较大规模的数据集时,不知道从何下手,此时处理这种情况最好的方式就是汇总数据,快速的得到一个数据预览. 在T-SQL中,使用GROUP BY子句在一个聚合查询中来汇总需要的数据.这个子句由一组表…
转:http://blog.csdn.net/shangboerds/article/details/5193211 大家对GROUP BY应该比较熟悉,如果你感觉自己并不完全理解GROUP BY,那么本文不适合你.还记得当初学习SQL的时候,总是理解不了GROUP BY的作用,经过好长时间才终于明白GROUP BY的真谛.当然,这和我本人笨也有关系,但是GROUP BY的确不好理解.本文将介绍DB2 GROUPING SETS.ROLLUP.CUBE的使用方法,这些关键字比GROUP BY更难…