grouping sets,cube,rollup,grouping__id,group by
例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),())
表示group by type,status union all group by type union all group by ()
得到
type status _c2
NULL NULL 69467
1 NULL 68216
1 1 63615
1 2 540
1 4 4061
2 NULL 891
2 1 873
2 2 18
3 NULL 360
3 1 340
3 4 20
例2:
hive -e"
select
type
,status
,count(1)
from
usr_info
where pt='2015-09-14'
group by type,status with rollup;
">two.txt
group by type,status with rollup按照以type为主的固定聚类汇总方式,如同group by type,status grouping sets ((type,status),( type),()) ,不过形式已经固定了,表示group by type,status union all group by type union all group by ()
得到
Type status _c2
NULL NULL 69467
1 NULL 68216
1 1 63615
1 2 540
1 4 4061
2 NULL 891
2 1 873
2 2 18
3 NULL 360
3 1 340
3 4 20
例3:
hive -e"
select
type
,status
,count(1)
from
usr_info
where pt='2015-09-14'
group by type,status with cube;
">three.txt
group by type,status with cube按照以type和status为主的固定聚类汇总方式,如同group by type,status grouping sets ((type,status),( type),(status),()) ,不过形式已经固定了,表示group by type,status union all group by type union all group by status union all group by ()
得到
Type status _c2
NULL NULL 69467
NULL 1 64828
NULL 2 558
NULL 4 4081
1 NULL 68216
1 1 63615
1 2 540
1 4 4061
2 NULL 891
2 1 873
2 2 18
3 NULL 360
3 1 340
3 4 20
例4:
hive -e"
select
type
,status
,grouping__id
,count(1)
from
usr_info
where pt='2015-09-14'
group by type,status with cube;
">five.txt
type
,status
,grouping__id
grouping__id(两条横线)函数判断其参数是否参与了分组,如果参与则返回1,如果没有参与了分组则返回0
而其多个参数的形式则将其每个参数进行grouping__id运算后返回的值拼成二进制后转换为十进制返回,
grouping_id(argn,...,arg2,arg1)=grouping_id(argn)*2^(n-1)+...+grouping_id(arg2)*2^1+grouping_id(arg1)*2^0('^'表示幂运算)。
Hive中grouping__id不带参数,用法见例子。
得到
type status grouping__id _c3
NULL NULL 0 69467
NULL 1 2 64828
NULL 2 2 558
NULL 4 2 4081
1 NULL 1 68216
1 1 3 63615
1 2 3 540
1 4 3 4061
2 NULL 1 891
2 1 3 873
2 2 3 18
3 NULL 1 360
3 1 3 340
3 4 3 20
grouping sets,cube,rollup,grouping__id,group by的更多相关文章
- SQL Server ->> GROUPING SETS, CUBE, ROLLUP, GROUPING, GROUPING_ID
在我们制作报表的时候常常需要分组聚合.多组聚合和总合.如果通过另外的T-SQL语句来聚合难免性能太差.如果通过报表工具的聚合功能虽说比使用额外的T-SQL语句性能上要好很多,不过不够干脆,还是需要先生 ...
- 转:GROUPING SETS、ROLLUP、CUBE
转:http://blog.csdn.net/shangboerds/article/details/5193211 大家对GROUP BY应该比较熟悉,如果你感觉自己并不完全理解GROUP BY,那 ...
- GROUPING SETS、ROLLUP、CUBE
大家对GROUP BY应该比较熟悉,如果你感觉自己并不完全理解GROUP BY,那么本文不适合你.还记得当初学习SQL的时候,总是理解不了GROUP BY的作用,经过好长时间才终于明白GROUP BY ...
- SQL Server 之 GROUP BY、GROUPING SETS、ROLLUP、CUBE
1.创建表 Staff CREATE TABLE [dbo].[Staff]( ,) NOT NULL, ) NULL, ) NULL, ) NULL, [Money] [int] NULL, [Cr ...
- Grouping Sets:CUBE和ROLLUP从句
在上一篇文章里我讨论了SQL Server里Grouping Sets的功能.从文中的例子可以看到,通过简单定义需要的分组集是很容易进行各自分组.但如果像从所给的列集里想要有所有可能的分布——即所谓的 ...
- group by <grouping sets(...) ><cube(...)>
GROUP BY GROUPING SETS() 后面将还会写学习 with cube, with rollup,以及将它们转换为标准的GROUP BY的子句GROUP SET(), CU ...
- Group By 多个分组集小结 --GROUPING SETS,GROUP BY CUBE,GROUP BY ROLLUP,GROUPING(),GROUPING_ID()
T-SQL 多个分组集共有三种 GROUPING SETS, CUBE, 以及ROLLUP, 其中 CUBE和ROLLUP可以当做是GROUPING SETS的简写版 示例数据库下载: http:// ...
- 使用group by rollup和group by cube后的辅助函数
本文主要介绍,报表在使用group by rollup和group by cube后的辅助函数. CREATE TABLE TEST8 ( "ID" NUMBER, "O ...
- Group By Grouping Sets
Group by分组函数的自定义,与group by配合使用可更加灵活的对结果集进行分组,Grouping sets会对各个层级进行汇总,然后将各个层级的汇总值union all在一起,但却比单纯的g ...
随机推荐
- BZOJ 1797 最小割
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1797 题意:给出一个有向图,每条边有流量,给出源点汇点s.t.对于每条边,询问:(1)是 ...
- 关于float的说明
关于float的说明 如图所示,蓝色的div和红色的div处于黑色的div(宽为500px)之中,其中蓝色的div设置了做浮动: 由图一(红色div的margin-top为10px,margi ...
- C# WPF MVVM 实战 – 4 - 善用 IValueConverter
IValueConverter,做 WPF 的都应该接触过,把值换成 Visibility .Margin 等等是最常见的例子,也有很多很好的博文解释过用法.本文只是解释一下,MVVM 中一些情景. ...
- CUBRID学习笔记 14 删除主键错误
发生这样的问题.其实和别的数据库基本原因差不多. 就是外键冲突. 看看有没有外键引用这个表的主键. 然后删除外键. 就可以了 SELECT class_name FROM db_index WHER ...
- CentOS7编译安装Nginx-1.8.1和编译参数
CentOS7编译安装Nginx-1.8.1和编译参数 Web服务器Nginx LNMP是一组众所周知的Web网站服务器架构环境,即由Linux+Nginx+MySQL+PHP(MySQL有时也 ...
- hnoi 2016 省选总结
感觉省选好难的说...反正我数据结构太垃圾正解想到了也打不出来打一打暴力就滚粗了! DAY1 0+20+30 DAY2 60-20+0+60 最后170-20分,暴力分还是没有拿全! 然而这次是给了5 ...
- 《Linux内核设计的艺术》学习笔记(二)INT 0x13中断
参考资料: 1. <IBM-PC汇编语言程序设计> 2. http://blog.sina.com.cn/s/blog_5028978101008wk2.html 3. http://ww ...
- iOS - Swift NSPoint 位置
前言 结构体,这个结构体用来表示事物的一个坐标点. public typealias NSPoint = CGPoint public struct CGPoint { public var x: C ...
- 流媒体基础实践之——Nginx-RTMP-module 指令详解
转载网址:http://blog.csdn.net/aoshilang2249/article/details/51483814
- 学习日记day9: PC端页面流程优化
<!DOCTYPE html><html lang="en"><head> <meta charset="gb2312" ...