Hive grouping sets 多维度交叉清洗数据
工作中经常会遇到需要多维度交叉清洗数据的情况,比如计算每天的活跃用户数,需要知道每天整体dau,同时也需要知道不同平台如Android、iOS各自的dau,
一般情况下这种情况可能需要写两个query,第一个query仅按日期 group by,第二个query按日期+平台 group by,
针对这种情况Hive提供了grouping sets,可以用更简洁的方式通过一个query实现相同的效果。
语法结构如下:
select day_id,platform,count(distinct user_id) dau
from table_name
group by day_id,platform
grouping sets(
(day_id),
(day_id,platform)
)
grouping sets中的(day_id),(day_id,platform)代表两个group by组合,相当于两个query使用了不同的group by逻辑union all的结果
select day_id,'' platform,count(distinct user_id) dau
from table_name
group by day_idunion all
select day_id,platform,count(distinct user_id) dau
from table_name
group by day_id,platform
grouping sets可以让我们在处理多维度交叉数据时变的方便很多,极大减少了相关代码量及运算效率
Hive grouping sets 多维度交叉清洗数据相关推荐
- hive通过grouping sets多维度组合去重统计避免使用distinct
在hive中,如果遇到多维度组合统计,并且要进行去重统计,例如统计不同维度组合的访问用户数,比如统计运营商.手机品牌.网络类型的用户数,怎样避免不用ditinct(因为distinct效率低),并且g ...
- flink GROUPING SETS多维度聚合、设置Table state 到期时间
文章目录 1. GROUPING SETS 2. TTL 1. GROUPING SETS 在一个GROUP BY 查询中,根据不同的维度组合进行聚合.GROUPING SETS就是一种将多个GR ...
- grouping sets函数
grouping sets: 根据不同的维度组合进行聚合,等价于将不同维度的group by结果集进行union all grouping__id(请注意函数名中的下划线是两个!):表示结果属于哪一个 ...
- mysql group by cube_SQL Server 之 GROUP BY、GROUPING SETS、ROLLUP、CUBE
1.创建表 Staff CREATE TABLE [dbo].[Staff]([ID] [int] IDENTITY(1,1) NOT NULL,[Name] [varchar](50) NULL,[ ...
- 大数据之hive:hive新功能之GROUPING SETS,Cube, Rollup
目录 一.GROUPING SETS 1.概述 2.实战 二.Cube 1.概述 2.实战 三.Rollup 1.概述 2.实战 四.Grouping_ID函数 一.GROUPING SETS 1.概 ...
- Hive分析窗口函数(五) GROUPING SETS,GROUPING__ID,CUBE,ROLLUP
GROUPING SETS 该关键字可以实现同一数据集的多重group by操作.事实上GROUPING SETS是多个GROUP BY进行UNION ALL操作的简单表达,它仅仅使用一个stage完 ...
- presto和hive中grouping sets的格式不一致问题
背景 遇到的问题,在presto中使用hive中的grouping sets报错 报错信息如下 [1] Query failed (#20220811_003524_00009_hzxre): lin ...
- Hive之grouping sets用法详解
目录 关键字: 简单示例: 实例一: presto中grouping sets函数 关键字: GROUPING SETS: 根据不同的维度组合进行聚合,等价于将不同维度的GROUP BY结果集进行UN ...
- Hive函数:GROUPING SETS,GROUPING__ID,CUBE,ROLLUP
参考:lxw大数据田地:http://lxw1234.com/archives/2015/04/193.htm 数据准备: CREATE EXTERNAL TABLE test_data ( mont ...
- 【Hive】grouping sets() 函数
文章目录 1. 语法 2. 例子 1. 语法 grouping sets()函数是一种将多个group by逻辑写在一个sql语句中的便利写法. 等价于将不同维度的GROUP BY结果集进行UNION ...
最新文章
- CVPR2019论文解读:单眼提升2D检测到6D姿势和度量形状
- 44. Wildcard Matching 通配符匹配
- Intelligent Factorial Factorization LightOJ - 1035(水题)
- OpenCV学习笔记:矩阵的掩码操作
- 分治法求两个等长升序序列的联合中位数
- windows之bat之批处理复制文件
- OpenCV读取RTSP视频流
- 17995 Stupid thief 组合数学
- Atitit 游戏引擎---物理系统(1)------爆炸效果
- 电脑公司最新稳定win7系统下载
- DSP到底是个什么鬼?看完你就懂了
- wps怎么在中文后面加数字_wps带圆圈数字序号⑩后面怎么输入
- 浅谈贪吃蛇的创新玩法
- 如何在keil5中定义结构变量
- (五)谷歌地图坐标转换:经纬度如何实现转换成谷歌地图平面坐标
- 如何以管理员身份运行powerShell
- 动态DNS的定义以及优缺点有哪些
- 32位plsql连接64位Oracle数据库
- springDataJpa @Query注解多条件动态模糊分页查询,传入形参对象
- 使用ARP欺骗, 截取局域网中任意一台机器的网页请求,破解用户名密码等信息