Hive的group by

-- 创建 stu 表
CREATE TABLE stu(
id int,
name string,
age int,
sex string 
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';-- 表内数据
load data local inpath '/home/hadoop/stu' into table stu;
1   name1   12  boy
2   name2   12  boy
3   name3   13  girl
4   name4   13  boy
5   name5   14  boy
6   name6   14  boy
7   name7   15  girl
8   name8   15  girl

group by

group by 根据一个或多个列对结果集进行分组,一般和聚合函数一起使用才有意义,比如 count sum avg max min等,
使用group by的两个要素:
• 出现在select后面的字段,要么是聚合函数中的,要么就是group by中的.即select列表项中出现的列必须全部出现在group by后面(聚合函数除外).group by中的字段可以不在select列表项中.
• 要筛选结果:1.可以先使用 where 再用 group by.2.可以先使用 group by 再用 having.
-- 先where后group by
select max(id),max(name),max(age),sex from stu where age=13 group by sex;
-- 先group by后having
select max(id),max(name),age,sex from stu group by age,sex having age=13;

grouping sets

grouping sets是一种将多个 group by 逻辑写在一个sql语句中的便利写法.

GROUP BY a, b GROUPING SETS ((a,b))

SELECT a, b, SUM(c) FROM tab1 GROUP BY a, b GROUPING SETS ((a,b))
-- 等于
SELECT a, b, SUM(c) FROM tab1 GROUP BY a, b

GROUP BY a, b GROUPING SETS ((a,b), a)

SELECT a, b, SUM(c) FROM tab1 GROUP BY a, b GROUPING SETS ((a,b), a)
-- 等于
SELECT a, b, SUM(c) FROM tab1 GROUP BY a, b 
UNION ALL
SELECT a, null, SUM(c) FROM tab1 GROUP BY a

GROUP BY a, b GROUPING SETS (a,b)

SELECT a,b, SUM(c) FROM tab1 GROUP BY a, b GROUPING SETS (a,b)
-- 等于
SELECT a, null, SUM(c) FROM tab1 GROUP BY a 
UNION ALL
SELECT null, b, SUM(c) FROM tab1 GROUP BY b

GROUP BY a, b GROUPING SETS ((a, b), a, b, ())

SELECT a, b, SUM(c) FROM tab1 GROUP BY a, b GROUPING SETS ((a, b), a, b, ())
-- 等于
SELECT a, b, SUM(c) FROM tab1 GROUP BY a, b 
UNION ALL
SELECT a, null, SUM(c) FROM tab1 GROUP BY a
UNION ALL
SELECT null, b, SUM(c) FROM tab1 GROUP BY b 
UNION ALL
SELECT null, null, SUM(c) FROM tab1

with cube

是group by中所有key的组合(类似于笛卡尔积)
select age,sex,count(id) from stu group by age,sex with cube;
--等于
select age,sex,count(id) from stu group by age,sex grouping sets((age,sex),age,sex,());--例如:
group by a,b,c with cube =
grouping sets(
(a,b,c)
(a,b)
(b,c)
(a,c)
a
b
c
()
)

with rollup

是按右侧递减的顺序组合
-- 相当于按右侧递减的顺序group by
select age,sex,count(id) from stu group by age,sex with rollup;
-- 等于
select age,sex,count(id) from stu group by age,sex grouping sets((age,sex),age,());-- 例如:
group by a,b,c with rollup =
grouping sets(
(a,b,c)
(a,b)
(a)
()
)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/837233.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言 | Leetcode C语言题解之第88题合并两个有序数组

题目: 题解: void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n) {int p1 m - 1, p2 n - 1;int tail m n - 1;int cur;while (p1 > 0 || p2 > 0) {if (p1 -1) {cur nums2[p2--];} else if (p2 -1) {cur nu…

Kali Linux菜单中各工具功能大全

网络安全学习路线 (2024最新整理) 如图片过大被平台压缩导致看不清的话,评论区点赞和评论区留言扣1或者关注我我后台会主动发给你! 第一阶段:安全基础 网络安全行业与法规 Linux操作系统 计算机网络 HTML PHP Mysql P…

【董晓算法】竞赛常用知识之字符串2

前言: 本系列是学习了董晓老师所讲的知识点做的笔记 董晓算法的个人空间-董晓算法个人主页-哔哩哔哩视频 (bilibili.com) 动态规划系列(还没学完) 【董晓算法】动态规划之线性DP问题-CSDN博客 【董晓算法】动态规划之背包DP问题&#xff…

用Rust打印杨辉三角

一、杨辉三角是什么? 杨辉三角是一个著名的数学图形,它展示了二项式系数的排列方式。 杨辉三角是一种将二项式系数以三角形阵列排列的数学图形,具有丰富的历史和数学意义。 杨辉三角的历史起源可以追溯到中国南宋时期,由数学家杨辉…

极端天气对气膜建筑有什么影响吗—轻空间

气膜建筑在近年来的发展迅速,逐渐替代了一部分传统建筑,展现了良好的市场前景。然而,面对自然环境中的极端天气,如暴风、暴雨和暴雪,气膜建筑是否能够经受住考验是大家关注的焦点。轻空间带您探讨一下这些极端天气对气…

springboot 开启缓存 @EnableCaching(使用redis)

添加依赖 pom.xml <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId> </dependency>application.yml 配置redis连参数 spring:# redis 配置redis:# 地址host: 127.0.0.…

649. Dota2 参议院

649. Dota2 参议院 题目链接&#xff1a;649. Dota2 参议院 代码如下&#xff1a; //贪心算法 class Solution { public:string predictPartyVictory(string senate) {bool Rtrue,Dtrue;// 当flag大于0时&#xff0c;R在D前出现&#xff0c;R可以消灭D。当flag小于0时&#…

JVM 加载 Class 文件的原理机制

Class 文件 Java中的Class文件是编译后的Java源代码文件&#xff0c;它包含了Java程序的字节码指令&#xff0c;也就是实际的执行代码。Class文件是Java程序的中间文件&#xff0c;可以被Java虚拟机&#xff08;JVM&#xff09;加载和执行。在编译Java源代码时&#xff0c;Java…

探究NVMe SSD HMB应用场景与影响-<续>

如果需要采用HMB功能&#xff0c;需要SSD支持NVME协议且NVMe 1.2及以上版本。NVME协议中对HMB对应有2个关键参数&#xff1a; HMB建议值&#xff08;HMPRE&#xff09;&#xff1a;设定实际分配给HMB使用的主机内存容量&#xff0c;为设备提供最优性能的内存分配量。 HMB最小值…

双星号(**)和单星号(*)在Python参数传递中的妙用

在Python中&#xff0c;参数传递是一个非常重要的概念&#xff0c;它允许函数接收任意数量的参数。而双星号(**)和单星号(*)在参数传递中扮演着关键角色。本文将详细讲解这两个符号的用法&#xff0c;并通过示例代码帮助初学者理解它们的工作原理。 单星号(*) 单星号(*)用于函…

EPS软件标注点坐标值

1、如下&#xff0c;点击右侧&#xff08;尺寸标注&#xff09;按钮&#xff1a; 2、弹出一个对话框&#xff0c;如下&#xff1a; 3、在上图对话框中设置好箭头样式和小数位数&#xff0c;然后点击图上一点&#xff0c;右击结束再鼠标指定位置&#xff0c;如下&#xff1a; 如…

CV每日论文--2024.5.10

1、Attention-Driven Training-Free Efficiency Enhancement of Diffusion Models 中文标题&#xff1a;扩散模型的注意力驱动的训练免费效率增强 简介&#xff1a;扩散模型在生成高质量和多样化图像方面取得了出色的表现,但其卓越性能是以昂贵的架构设计为代价的,特别是广泛使…

数据库——SQL SERVER(先学删库跑路)

目录 一&#xff1a;什么是数据库 二&#xff1a;为什么需要数据库 三&#xff1a;数据库的安装 四&#xff1a;学前必备知识 1. 数据库原理 2. 数据库与编程语言 3. 数据库与数据结构的区别 4. 连接 5. 有了编程语言为啥还要数据库 6. 初学者学习数据库的三个方面 …

mplab ide中使用c语言编程,PIC单片机的C语言使用——在MPLAB-IDE中使用HitechC编译器.doc...

mplab ide中使用c语言编程,PIC单片机的C语言使用——在MPLAB-IDE中使用HitechC编译器.doc...-CSDN博客

高校推免报名|基于SSM+vue的高校推免报名系统的设计与实现(源码+数据库+文档)

高校推免报名 目录 基于SSM&#xff0b;vue的高校推免报名的设计与实现 一、前言 二、系统设计 三、系统功能设计 1系统功能模块 2后台登录模块 5.2.1管理员功能模块 5.2.2考生功能模版 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八…

放大招:NLP-探索深度学习在自然语言处理中的应用:构建标题生成器

引言 在深度学习的领域中&#xff0c;自然语言处理&#xff08;NLP&#xff09;是一个令人兴奋且快速发展的分支。它使得机器能够理解、解释和生成人类语言。在本博客中&#xff0c;我们将通过构建一个简单的标题生成器来探索NLP的基础知识&#xff0c;了解如何使用深度学习模…

【学习笔记】人群归因分数 PAF 以及combined PAF(更新)

在此推荐2篇发表在lancet以及jama子刊上的paf文章&#xff0c;这两篇文章套路是一样的&#xff0c;只是在不同国家进行。 在计算combined PAF或者说weighted PAF的时候&#xff0c;先建立了相关矩阵&#xff0c;再做主成分分析&#xff0c;得到communality。详细信息大家可翻阅…

【Pytest官方文档翻译及学习】1.1 安装和入门

目录 1.1 安装和入门 1.1.1 安装pytest 1.1.2 创建第一个测试 1.1.3 运行多个测试 1.1.4 断言引发了某个异常 1.1.5 将多个测试分组在一个类中 1.1.6 请求功能测试的唯一临时目录 1.1.7 继续阅读 Pytest是一个成熟的全功能的Python测试框架&#xff0c;它可以满足大多数…

huffman编码【python】【算法】

哈夫曼编码(Huffman Coding)&#xff0c;又称霍夫曼编码&#xff0c;是一种编码方式&#xff0c;哈夫曼编码是可变字长编码(VLC)的一种。该方法完全依据字符出现概率来构造整体平均长度最短的码字&#xff0c;有时称之为最佳编码&#xff0c;一般就叫做Huffman编码&#xff08;…

MFC/QT利用COM组件接口从字体名称、粗体、斜体获取到字体文件路径的方法

MFC/QT利用COM组件接口从字体名称、粗体、斜体获取到字体文件路径的方法 这个是目前唯一能准确从字体名称加粗斜体三个属性定位到ttf/ttc字体路径的方法&#xff0c;其他的方式是没有办法区分后两个属性而且会出现不准确的问题 之前无意间在MSDN找到的资料&#xff1a; IDWr…