文章目录

  • 1. 语法
  • 2. 例子

1. 语法

grouping sets()函数是一种将多个group by逻辑写在一个sql语句中的便利写法。

等价于将不同维度的GROUP BY结果集进行UNION ALL。

GROUPING__ID是分组编号,从1开始。

比如:

-- 第一个sql
select a, b, c from t group by a-- 第二个sql
select a, b, c from t group by b-- 第三个sql
select a, b, c from t group by a, b-- 将这3个查询结果合在一起有
select a, b, c from (select a, b, c from t group by a)
union all
select a, b, c from (select a, b, c from t group by b)
union all
select a, b, c from (select a, b, c from t group by a, b)-- 将这两个合在一起的更简单的写法:使用 grouping sets
select a, b, c from t
group by a, b
grouping sets (a, b, (a, b))

2. 例子

  1. cookie_info.txt 文件:

    2018-03,2018-03-10,cookie1
    2018-03,2018-03-10,cookie5
    2018-03,2018-03-12,cookie7
    2018-04,2018-04-12,cookie3
    2018-04,2018-04-13,cookie2
    2018-04,2018-04-13,cookie4
    2018-04,2018-04-16,cookie4
    2018-03,2018-03-10,cookie2
    2018-03,2018-03-10,cookie3
    2018-04,2018-04-12,cookie5
    2018-04,2018-04-13,cookie6
    2018-04,2018-04-15,cookie3
    2018-04,2018-04-15,cookie2
    2018-04,2018-04-16,cookie1
    
  2. 导入数据

    CREATE TABLE cookie_info(month STRING,day STRING,cookieid STRING
    ) ROW FORMAT DELIMITED
    FIELDS TERMINATED BY ',';load data local inpath '/root/hivedata/cookie_info.txt' into table cookie_info;select * from cookie_info;
    
  3. 分别统计每一天的cookie和每月的cookie并联合在一张表中

    SELECT
    month,
    day,
    COUNT(DISTINCT cookieid) AS nums,
    GROUPING__ID
    FROM cookie_info
    GROUP BY month,day
    GROUPING SETS (month,day)
    ORDER BY GROUPING__ID;
    

    结果:

【Hive】grouping sets() 函数相关推荐

  1. grouping sets函数

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

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

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

  3. Hive之grouping sets用法详解

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

  4. oracle 分组统计效率,Oracle 分组求和函数(rollup、cube、grouping sets)

    文章目录 1 场景 1.1 概念 1.2 思维导图 1.3 数据准备 2 知识点小结 2.1 group by 2.2 grouping sets:单独分组 2.3 rollup:累计累加 2.4 c ...

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

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

  6. Hive sql分组函数grouping sets、cube、rollup用法简介

    文章目录 1.数据如下: 2.建表如下: 3.grouping sets 4.cube 5.rollup 1.数据如下: user_id,dep_id,group_id,salary 10001,a, ...

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

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

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

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

  9. [转]详解Oracle高级分组函数(ROLLUP, CUBE, GROUPING SETS)

    原文地址:http://blog.csdn.net/u014558001/article/details/42387929 本文主要讲解 ROLLUP, CUBE, GROUPING SETS的主要用 ...

最新文章

  1. python读取文件读不出来-python文件读取失败怎么处理
  2. ebs 供应商地点信息_实探荣耀办公地:与高通接近达成合作,加快供应商整合脚步...
  3. 《互联网公司工程师图鉴》
  4. JS 判断输入是否为数字
  5. apache正向代理配置
  6. 魔幻的2020年,请程序员们收下这份秋招建议!
  7. mysql 的 null值_MySQL NULL值
  8. 前端js日期时间格式转换
  9. mysql 开发进阶篇系列 13 锁问题(关于表锁,死锁示例,锁等待设置)
  10. Linux 使用 ffmpeg 开发
  11. python抓取天气预报_抓取天气预报的代码(Python)
  12. python opencv对颗粒的计数与计算空洞率
  13. 笔记本电脑连接无线网总是突然断网
  14. 存档:全球各国名称中英文对照表
  15. Raft 论文精读笔记|In Search of an Understandable Consensus Alg orithm (Extended Version)
  16. 92 - 青蛙跳台阶
  17. 第十三届蓝桥杯C++B组国赛I题——齿轮 (AC)
  18. 银行HR讲述实习生转正故事:寒门真的再难出贵子
  19. 标准电路——蜂鸣器Beep
  20. Django解决css样式失效问题最终方法

热门文章

  1. Deepin下安装scrapy报错fatal error: Python.h: 没有那个文件或目录
  2. Python数据分析训练营——Python基础语法
  3. 电脑不能正常连接网络常见问题解决方法
  4. php 支付宝证书 单笔转账到账户
  5. Outlook邮件客户端邮件如何备份?
  6. C++ 菱形字母金字塔
  7. 数据库系统原理 - - (6)数据库安全与保护
  8. 计算机毕业设计java+ssm二手书交易管理系统(源码+系统+mysql数据库+Lw文档)
  9. 数据要素的性质、定价及配置
  10. 如何将ascii值转字符