-- GROUPING SETS作为GROUP BY的子句,允许开发人员在GROUP BY语句后面指定多个统计选项,可以简单理解为多条group by语句通过union all把查询结果聚合起来结合起来. select device_id ,os_id ,app_id ,count(user_id) from test_xinyan_reg group by device_id,os_id,app_id grouping sets((device_id),(os_id),(device_id,o…
在我们制作报表的时候常常需要分组聚合.多组聚合和总合.如果通过另外的T-SQL语句来聚合难免性能太差.如果通过报表工具的聚合功能虽说比使用额外的T-SQL语句性能上要好很多,不过不够干脆,还是需要先生成整个结果集然后再聚合,而且最最重要的时很多情况下报表的聚合功能可能没办法达到我们需要的效果.GROUPING SETS, CUBE, ROLLUP, GROUPING, GROUPING_ID这几个聚合函数的作用就是在原始语句的基础上完成很多像财务报表需要的聚合功能. GROUPING SETS相…
例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),()) 表…
0. 说明 Hive 的高级聚合函数 union all | grouping sets | cube | rollup pv //page view 页面访问量 uv //user view 访问人数 1. union all 表联合操作 1.0 准备数据 pv.txt cookie1 cookie5 cookie7 cookie3 cookie2 cookie4 cookie4 cookie2 cookie3 cookie5 cookie6 cookie3 cookie2 cookie1 c…
转: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…
1.grouping sets grouping sets子句都可以根据UNION连接的多个GROUP BY查询进行逻辑表示 SELECT a,b,SUM(c)FROM tab1 GROUP BY a,b GROUPING SETS((a,b),a,b,()) 等价于 SELECT a,b,SUM(c)FROM tab1 GROUP BY a,b union SELECT a,null,SUM(c)FROM tab1 GROUP BY a,null union SELECT null,b,SUM…
Hive的一些常用的高阶开发 内容    1.开窗函数   2.行转列,列转行,多行转一行,一行转多行   3.分组: 增强型group   4.排序  5.关联 本次的内容: 内容1 和内容2,采用的是示例数据以及对应的实现.数据可以直接放在Hive中执行.可以直观的观察数据,进而对函数以及相应的功能有所熟悉. 对于不同的场景的数据计算,了解SQL的基本语法以及一些高阶用法,在这些基础上组合相应的功能.这些都是一些工程上的应用,多练习的.通过构建数据集来验证的方式,是可以自己来确认一些似是而非…
在上一篇文章里我讨论了SQL Server里Grouping Sets的功能.从文中的例子可以看到,通过简单定义需要的分组集是很容易进行各自分组.但如果像从所给的列集里想要有所有可能的分布——即所谓的幂集(Power Set),要怎么做呢? 当然,你可以用grouping set的语法功能来手动生成幂集,但那需要写一大堆的代码.因此今天我向你展示下grouping set功能支持的2个从句:CUBE和ROLLUP从句. CUBE从句 使用CUBE从句,对于提供的列集,你可以生成所有可能的分组集.…