例1: hive -e" select type ,status ,count(1) from usr_info where pt='2015-09-14' group by type,status grouping sets ((type,status),( type),()); ">one.txt Grouping sets按照各种指定聚类汇总方式,如group by type,status grouping sets ((type,status),( type),()) 表…
在我们制作报表的时候常常需要分组聚合.多组聚合和总合.如果通过另外的T-SQL语句来聚合难免性能太差.如果通过报表工具的聚合功能虽说比使用额外的T-SQL语句性能上要好很多,不过不够干脆,还是需要先生成整个结果集然后再聚合,而且最最重要的时很多情况下报表的聚合功能可能没办法达到我们需要的效果.GROUPING SETS, CUBE, ROLLUP, GROUPING, GROUPING_ID这几个聚合函数的作用就是在原始语句的基础上完成很多像财务报表需要的聚合功能. GROUPING SETS相…
转: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更难…
大家对GROUP BY应该比较熟悉,如果你感觉自己并不完全理解GROUP BY,那么本文不适合你.还记得当初学习SQL的时候,总是理解不了GROUP BY的作用,经过好长时间才终于明白GROUP BY的真谛.当然,这和我本人笨也有关系,但是GROUP BY的确不好理解.本文将介绍DB2 GROUPING SETS.ROLLUP.CUBE的使用方法,这些关键字比GROUP BY更难理解,所以阅读本文的时候,一定要慢,仔细的分析,你理解的越多,需要记忆的就越少. 我们首先来看GROUPING SET…
1.创建表 Staff CREATE TABLE [dbo].[Staff]( ,) NOT NULL, ) NULL, ) NULL, ) NULL, [Money] [int] NULL, [CreateDate] [datetime] NULL ) ON [PRIMARY] GO 2.为Staff表填充数据 INSERT INTO [dbo].[Staff]([Name],[Sex],[Department],[Money],[CreateDate]) ,'2011-11-12' UNIO…
在上一篇文章里我讨论了SQL Server里Grouping Sets的功能.从文中的例子可以看到,通过简单定义需要的分组集是很容易进行各自分组.但如果像从所给的列集里想要有所有可能的分布——即所谓的幂集(Power Set),要怎么做呢? 当然,你可以用grouping set的语法功能来手动生成幂集,但那需要写一大堆的代码.因此今天我向你展示下grouping set功能支持的2个从句:CUBE和ROLLUP从句. CUBE从句 使用CUBE从句,对于提供的列集,你可以生成所有可能的分组集.…
GROUP BY      GROUPING SETS() 后面将还会写学习 with cube,  with rollup,以及将它们转换为标准的GROUP BY的子句GROUP SET(), CUBE的用法(虽然MSSQL以后将会去掉) 这里面的大小写混淆来写不规范,以后还是习惯使用大写吧,有时是为节省宽度空间用小写,标准还是用大写SQL的关键字 --group by 子句中的cube, rollup, --这样理解: cube立方(既然是立方,就是变多了), rollup卷起,包起来(按字…
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…
本文主要介绍,报表在使用group by rollup和group by cube后的辅助函数. CREATE TABLE TEST8 ( "ID" NUMBER, "ORDERID" NUMBER, "PRODUCTID" NUMBER, "PRICE" ,), "QUANTITY" NUMBER ) , , , , ); , , , , ); , , , , ); , , , , ); , , , ,…
Group by分组函数的自定义,与group by配合使用可更加灵活的对结果集进行分组,Grouping sets会对各个层级进行汇总,然后将各个层级的汇总值union all在一起,但却比单纯的group by + union all 效率要高 1 创建数据 CREATE TABLE employee ( name NVARCHAR2(), gender ), country NVARCHAR2(), department NVARCHAR2(), salary ) ); ); ); );…