工作中经常会遇到需要多维度交叉清洗数据的情况,比如计算每天的活跃用户数,需要知道每天整体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 多维度交叉清洗数据相关推荐

  1. hive通过grouping sets多维度组合去重统计避免使用distinct

    在hive中,如果遇到多维度组合统计,并且要进行去重统计,例如统计不同维度组合的访问用户数,比如统计运营商.手机品牌.网络类型的用户数,怎样避免不用ditinct(因为distinct效率低),并且g ...

  2. flink GROUPING SETS多维度聚合、设置Table state 到期时间

    文章目录 1. GROUPING SETS 2. TTL 1. GROUPING SETS   在一个GROUP BY 查询中,根据不同的维度组合进行聚合.GROUPING SETS就是一种将多个GR ...

  3. grouping sets函数

    grouping sets: 根据不同的维度组合进行聚合,等价于将不同维度的group by结果集进行union all grouping__id(请注意函数名中的下划线是两个!):表示结果属于哪一个 ...

  4. 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,[ ...

  5. 大数据之hive:hive新功能之GROUPING SETS,Cube, Rollup

    目录 一.GROUPING SETS 1.概述 2.实战 二.Cube 1.概述 2.实战 三.Rollup 1.概述 2.实战 四.Grouping_ID函数 一.GROUPING SETS 1.概 ...

  6. Hive分析窗口函数(五) GROUPING SETS,GROUPING__ID,CUBE,ROLLUP

    GROUPING SETS 该关键字可以实现同一数据集的多重group by操作.事实上GROUPING SETS是多个GROUP BY进行UNION ALL操作的简单表达,它仅仅使用一个stage完 ...

  7. presto和hive中grouping sets的格式不一致问题

    背景 遇到的问题,在presto中使用hive中的grouping sets报错 报错信息如下 [1] Query failed (#20220811_003524_00009_hzxre): lin ...

  8. Hive之grouping sets用法详解

    目录 关键字: 简单示例: 实例一: presto中grouping sets函数 关键字: GROUPING SETS: 根据不同的维度组合进行聚合,等价于将不同维度的GROUP BY结果集进行UN ...

  9. Hive函数:GROUPING SETS,GROUPING__ID,CUBE,ROLLUP

    参考:lxw大数据田地:http://lxw1234.com/archives/2015/04/193.htm 数据准备: CREATE EXTERNAL TABLE test_data ( mont ...

  10. 【Hive】grouping sets() 函数

    文章目录 1. 语法 2. 例子 1. 语法 grouping sets()函数是一种将多个group by逻辑写在一个sql语句中的便利写法. 等价于将不同维度的GROUP BY结果集进行UNION ...

最新文章

  1. CVPR2019论文解读:单眼提升2D检测到6D姿势和度量形状
  2. 44. Wildcard Matching 通配符匹配
  3. Intelligent Factorial Factorization LightOJ - 1035(水题)
  4. OpenCV学习笔记:矩阵的掩码操作
  5. 分治法求两个等长升序序列的联合中位数
  6. windows之bat之批处理复制文件
  7. OpenCV读取RTSP视频流
  8. 17995 Stupid thief 组合数学
  9. Atitit 游戏引擎---物理系统(1)------爆炸效果
  10. 电脑公司最新稳定win7系统下载
  11. DSP到底是个什么鬼?看完你就懂了
  12. wps怎么在中文后面加数字_wps带圆圈数字序号⑩后面怎么输入
  13. 浅谈贪吃蛇的创新玩法
  14. 如何在keil5中定义结构变量
  15. (五)谷歌地图坐标转换:经纬度如何实现转换成谷歌地图平面坐标
  16. 如何以管理员身份运行powerShell
  17. 动态DNS的定义以及优缺点有哪些
  18. 32位plsql连接64位Oracle数据库
  19. springDataJpa @Query注解多条件动态模糊分页查询,传入形参对象
  20. 使用ARP欺骗, 截取局域网中任意一台机器的网页请求,破解用户名密码等信息

热门文章

  1. 测试人员必备-adb常用基础命令
  2. TLSF 内存分配算法详解
  3. 一次excel表格操作
  4. 《麦肯锡方法》第1章建立解决方案-思维导图
  5. 易效能:有哪些可以高效休息的方法?
  6. 史上最简易无人机,仅有一个螺旋桨
  7. Phase2 Day18 SQL 约束
  8. 计算机信息的应用安全中心在哪,怎么通过windows安全中心扫描出当前具有威胁的应用...
  9. Linux公网渗透抓鸡实验
  10. matlab 阶乘函数