熟练使用多维度聚合函数,可以帮助开发者减少在处理数据时需要根据不同维度多次union query的代码编写工作

Hive常见的多维度聚合函数有:

  1. With Cube:任意维度聚合
  2. Grouping Sets:指定维度聚合
  3. With Rollup:GROUP BY最左侧的维度为主层级聚合

函数说明

1、with cube

1)语法:GROUP BY a,b WITH CUBE。

2)作用:根据Group BY维度的所有可能组合进行聚合。类似于Apache Kylin的Cube多维立方体概念。n个维度会有2的n次方种组合。

-- 查询query
select day_id
,platform
,count(1) num
from user_action_log
where day_id = '2019-01-01'
group by day_id,platform
with cube

结果:

  day_id platform num
1 2019-01-01 Android 300
2 NULL Android 300
3 2019-01-01 iOS 100
4 NULL iOS 100
5 2019-01-01 NULL 400
6 NULL NULL 400

2、grouping sets

1)语法:GROUP BY a,b GROUPING SETS (a,b)

2)作用:根据GROUPING SETS指定维度组合进行聚合。是Cube的一部分。Grouping Sets 分组(Grouping) 集(Sets),是多个分组的并集。等价于Union ALL单个分组结果。如grouping sets(A,B) 等价于...group by null,B union all ...group by A,null结果:

-- 查询Query
select day_id
,platform
,count(1) num
from user_action_log
where day_id = '2019-01-01'
group by day_id,platform
grouping sets(
(day_id),
(day_id,platform)
)
  day_id platform num
1 2019-01-01 iOS 100
2 2019-01-01 Android 300
3 2019-01-01 NULL 400

3、with rokllup

1)语法:GROUP BY a,b,c WITH ROLLUP

2)作用:以GROUP BY最左侧的维度为主,从该维度的角度去上卷、下钻。是Cube的一部分

-- 查询Query
select day_id
,platform
,count(1) num
from user_action_log
where day_id = '2019-01-01'
group by day_id,platform
with rollup

结果:

  day_id platform num
1 2019-01-01 iOS 100
2 2019-01-01 NULL 400
3 2019-01-01 Android 300
4 NULL NULL 400

Hive 多维度聚合分析查询相关推荐

  1. 搜索引擎(Elasticsearch聚合分析)

    2019独角兽企业重金招聘Python工程师标准>>> 学习目标 掌握聚合分析的查询语法. 掌握指标聚合.桶聚合的用法 聚合分析简介 ES聚合分析是什么? 聚合分析是数据库中重要的功 ...

  2. Hive之多维度聚合

    Hive之多维度聚合 多维聚合 1.grouping sets 语法: select ... from .. where .. group by A,B,C grouping sets( (A),(A ...

  3. Elasticsearch 分页查询聚合分析

    分页查询 关于 Elasticsearch 分页查询,这几个问题经常被问到 问题1:想请问下,一次性获取索引上的某个字段的所有值(100 万左右),除了把 max_result_window 调大 , ...

  4. Hive _偏门常用查询函数(二)附带实例(列转行、窗口函数)

    接上篇博客: Hive _偏门常用查询函数(一)附带实例 https://blog.csdn.net/qq_41946557/article/details/102904642 列转行 1.函数说明 ...

  5. ElasticSearch聚合分析API

    前言 说完了ES的索引与检索,接着再介绍一个ES高级功能API – 聚合(Aggregations),聚合功能为ES注入了统计分析的血统,使用户在面对大数据提取统计指标时变得游刃有余.同样的工作,你在 ...

  6. Hive基础09、HQL查询语句

    Hive基础09.HQL查询语句 目录 Hive基础08.HQL查询语句 1.基础查询语句 2.数组查询 3.map 4.struct 5.聚合查询语句 HQL查询内容全: 第一部分: Hive查询语 ...

  7. [Hive_11] Hive 的高级聚合函数

    0. 说明 Hive 的高级聚合函数 union all | grouping sets | cube | rollup pv //page view 页面访问量 uv //user view 访问人 ...

  8. ElasticSearch聚合分析

    聚合用于分析查询结果集的统计指标,我们以观看日志分析为例,介绍各种常用的ElasticSearch聚合操作. 目录: 查询用户观看视频数和观看时长 聚合分页器 查询视频uv 单个视频uv 批量查询视频 ...

  9. 聚合中返回source_大数据搜索与可视化分析(9)elasticsearch聚合分析Metric Aggregation...

    在上一篇文章中,我们介绍了<大数据搜索与可视化分析(8)kibana入门教程-2-Discover>,本文学习elasticsearch聚合分析,是对<大数据搜索与可视化分析(3)e ...

最新文章

  1. 悟道 · 文溯详解:蛋白质序列的大规模预训练
  2. 英特尔第七任CEO敲定 斯旺为何受到董事会青睐?
  3. 准确度量 持续改进—网站分析驱动目标达成zz
  4. return 语句不可返回指向“栈内存”的“指针”
  5. Ubuntu10.10 配置ssh服务器及samba服务器
  6. 本人真实经历:面试了20家大厂之后,发现这样介绍项目经验,显得项目很牛逼!...
  7. 线性链条件随机场与HMM在viterbi算法中的图解对比
  8. TensorFlow(一)
  9. python实例 97,98
  10. 前端工程师的CI进阶之路
  11. 晶体封装越小esr越大_晶振
  12. Chirpy Zippy工具使用心得
  13. MySQL访问权限管理
  14. php.ini 忽略警告,配置php.ini去掉警告信息
  15. # 融云 SDK 新用户入群加载历史消息 记录融云 SDK 的一个小功能,分享一下 ## 背景 项目中有用到融云 SDK 中的群组功能,产品说需要新人入群的时候看到历史消息。 本来以为直接能获
  16. [BUGKU] [MISC]旋转跳跃
  17. 对于一个小白来说,遇到的前端问题(3)
  18. MySQL comment 使用
  19. windows 打印机管理机制(任务后台等待机制)
  20. Linux内核中常见内存分配函数

热门文章

  1. 360网站卫士推出免费风云加速
  2. Revit二次开发-根据两个点创建剖面视图
  3. Elasticsearch:跨集群复制 Cross-cluster replication(CCR)
  4. 软件测试工程师这个岗位职责是什么?具体都需要干什么?
  5. hbase加入数据 java_插入java数据
  6. mediasoup json 通信协议2--room.js和router.cpp信令
  7. Legolas工业自动化平台入门(三)交互事件响应动作
  8. 当科技成为潮流,下一个新十年的未来应该如何畅想?
  9. 渝海手机号码归属地查询工具php版 v1.1
  10. ORB_SLAM2源码阅读(三)相机定位