Hive笔记-6

6.2.8 聚合函数

1) 语法
  • count(*),表示统计所有行数,包含null值;

  • count(某列),表示该列一共有多少行,不包含null值;

  • max(),求最大值,不包含null,除非所有值都是null;

  • min(),求最小值,不包含null,除非所有值都是null;

  • sum(),求和,不包含null。

  • avg(),求平均值,不包含null。

2) 案例实操
(1) 求总行数 (count)
hive (default)> select count(*) cnt from emp;

hive sql执行过程:

count不仅可以传一个 * 还可以传一个(字段)

null 值是不统计在内

null 值是不会被统计在内的

(2) 求工资的最大值 (max)
hive (default)> select max(sal) max_sal from emp;

hive sql执行过程:

(3) 求工资的最小值 (min)
hive (default)> select min(sal) min_sal from emp;

hive sql执行过程:

(4) 求工资的总和 (sum)
hive (default)> select sum(sal) sum_sal from emp; 

hive sql执行过程:

(5) 求工资的平均值 (avg)
hive (default)> select avg(sal) avg_sal from emp;

hive sql执行过程:

6.3 分组

6.3.1 Group By 语句

Group By语句通常会和聚合函数一起使用,按照一个或者多个列队结果进行分组,然后对每个组执行聚合操作。

1) 案例实操:

把job分组后查看

select count(*) from emp group by job

结果:

看起来有点不太对劲,再改一下:

在count(*)前面加个job

现在看的清楚多了

注意:

注意: 当你 group by job 的时候,

那你只能select 后面跟 job 不能是其他的字段

(1) 计算emp表每个部门的平均工资
hive (default)> 
select 
    t.deptno, 
    avg(t.sal) avg_sal 
from emp t 
group by t.deptno;

hive sql执行过程:

(2)计算emp每个部门中每个岗位的最高薪水。

hive (default)>
select 
    t.deptno, 
    t.job, 
    max(t.sal) max_sal 
from emp t 
group by t.deptno, t.job;

hive sql执行过程:

6.3.2 Having 语句

1) having 与 where 不同点
(1) where 后面不能写分组聚合函数,而having后面可以使用分组聚合函数
(2) having 只用于 group by 分组统计语句
2) 案例实操

找这张表里人数大于等于2的:

输入代码:

得到输出结果:

但是当我不想要嵌套子查询时:

可见where字句行不通

因为where是用来过滤一行一行的数据

而已经group by 分组过了,where不能过滤组

于是我们只能用having来过滤一组一组的数据

那我们就用having:

(1) 求每个部门的平均薪水大于2000的部门
1.求每个部门的平均工资
hive (default)> 
select 
    deptno, 
    avg(sal) 
from emp 
group by deptno;

hive sql执行过程:

2.求每个部门的平均薪水大于2000的部门
hive (default)>
select 
    deptno, 
    avg(sal) avg_sal 
from emp 
group by deptno  
having avg_sal > 2000;

hive sql执行过程:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CppTest单元测试框架(更新)

目录 1 背景2 设计3 实现4 使用4.1 主函数4.2 使用方法 1 背景 前面文章单元测试之CppTest测试框架中讲述利用宏ADD_SUITE将测试用例自动增加到测试框架中。但在使用中发现一个问题,就是通过宏ADD_SUITE增加多个测试Suite时,每次运行时都是所有测试Suit…

GraphQL:简介

GraphQL 图片来源: 我们将探索GraphQL 的基础知识,并学习如何使用Apollo将其与 React 和 React Native 等前端框架连接起来。这将帮助您了解如何使用 GraphQL、React、React Native 和 Apollo 构建现代、高效的应用程序。 什么是 GraphQL?…

中国智能工厂自动化集成商100强:广东23家,江苏20家,上海浙江紧随其后

导语 大家好,我是社长,老K。专注分享智能制造和智能仓储物流等内容。 新书《智能物流系统构成与技术实践》 更多的海量【智能制造】相关资料,请到智能制造online知识星球自行下载。 在数字化、智能化的浪潮中,中国智能工厂自动化集…

2024年兼职新赛道,我一个插画师给AI打下手,兼职月入3千!

AI生成厉害到什么程度?现在人类已经在为它打下手了。 据一位画手网友分享,他们圈子里已经诞生了全新的工种! 虽然乍一看名字别无二致都是“插画师”,但细看工作内容:使用AI绘画然后筛选精修。救,这不妥妥…

小程序中this(1)

}, onLoad: function() {}, }) 此时经过编译后模拟器的显示: 这里都容易理解,当点击了button按钮后,触发点击事件执行testfun函数,将test02设置为8,如图: 通过this.data.test028这种方式直接赋值可以吗&…

如何快速交付网络基础设施运维管理软件项目?

​ 基于nVisual网络基础设施数字孪生管理工具 开发项目需求 项目交付成本节省50%、进度提高100% ​ >>>nVisual主要功能<<< 01 场 景 ★ 支持层次化的场景结构 ★ 支持多种空间场景 ​ 02 规 划 ★ 丰…

[A133]uboot启动流程

[A133]uboot启动流程 hongxi.zhu 2024-6-21 1. 第一阶段 lds描述 从u-boot.lds中能找到程序的汇编入口ENTRY(_start) brandy/brandy-2.0/u-boot-2018/u-boot.lds OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") OUT…

AU音频重新混合音频,在 Adobe Audition 中无缝延长背景音乐,无缝缩短BGM

导入音频,选中音频,并且点 New Multitrack Session 的图标 设计文件名和存储路径,然后点 OK 点 Essential Sound 面板点 Music (如果没有这个面板 点菜单栏 Windows > Essential Sound 调出来) 点 Duration 展…

西门子PLC数据 转 CCLink IE Field Basic项目案例

1 案例说明 设置网关采集西门子PLC数据把采集的数据转成CCLink IE Field Basic协议转发给其他系统。 2 VFBOX网关工作原理 VFBOX网关是协议转换网关,是把一种协议转换成另外一种协议。网关可以采集西门子,欧姆龙,三菱,AB PLC&am…

星戈瑞DSPE-FITC在细胞标记中的应用

细胞标记是生物医学研究中的一项基本技术,它允许研究者追踪和观察细胞的行为、分布以及与周围环境的相互作用。在众多的细胞标记方法中,DSPE-FITC因其独特的性质和应用范围而受关注。 DSPE-FITC的基本性质 DSPE-FITC是由二硬脂酰磷脂酰乙醇胺&#xff0…

海云安参编《数字安全蓝皮书 》正式发布并入选《2024中国数字安全新质百强》荣膺“先行者”

近日,国内数字化产业第三方调研与咨询机构数世咨询正式发布了《2024中国数字安全新质百强》(以下简称百强报告)。海云安凭借在开发安全领域的技术创新力及市场影响力入选百强报告“新质百强先行者” 本次报告,数世咨询经过对国内8…

文心一言使用笔记

目录 让文心一言提炼已有的内容,模仿给出的案例写一段宣传稿方法例子 发现写出的内容有瑕疵,如何微调?比如文心一言介绍的领导不全如何让文心一言检查语法和表达问题? 如何让文心一言将每个片段用一两句话总结?为了防止…

冰淇淋PDF编辑器,轻量,无需安装,打开即用

​IceCream PDF Editor (冰淇淋PDF编辑器) 是一款简单实用的PDF文件编辑工具。功能包括:编辑文本、注释添加、页面管理、PDF文件保护等;操作简单,功能强大,使用户能够轻松编辑和修改PDF文件。 软件链接:轻量&#xff…

华为OD机试【高矮个子排队】(java)(100分)

1、题目描述 现在有一队小朋友,他们高矮不同,我们以正整数数组表示这一队小朋友的身高,如数组{5,3,1,2,3}。 我们现在希望小朋友排队,以“高”“矮”“高”“矮”顺序排列,每一个“高”位置的小朋友要比相邻的位置高或…

Ollama模型部署工具在Linux平台的部署

1.新建普通用户dmx(可选) [rootnode3 ~]$ useradd dmx2.切换普通用户dmx环境(可选) [dmxnode3 ~]$ su - dmx3.下载ollama-linux-amd64服务 下载ollama-linux-amd64到 ~/server目录,并将ollama-linux-amd64服务重命名为ollamaEED curl -L …

【仿真】UR机器人手眼标定与实时视觉追踪(单目)

这段代码实现了一个机器人视觉引导系统,主要功能包括: 连接仿真环境,控制UR机器人。相机标定: 使用棋盘格图案进行相机内参标定通过移动机器人采集多组图像使用calibrateCamera函数计算相机内参 手眼标定: 采集机器人末端位姿和对应的棋盘格图像使用calibrateHandEye函数计算相…

Percona Toolkit 神器全攻略(配置类)

Percona Toolkit 神器全攻略(配置类) Percona Toolkit 神器全攻略系列共八篇,前文回顾: 前文回顾Percona Toolkit 神器全攻略Percona Toolkit 神器全攻略(实用类) 全文约定:$为命令提示符、gr…

51-61 CVPR 2024 最佳论文 | Rich Human Feedback for Text-to-Image Generation

23年12月,加州大学圣地亚哥、谷歌研究院、南加州大学、剑桥大学联合发布Rich Human Feedback for Text-to-Image Generation论文。 作者受大模型中RLHF技术的启发,用人类反馈来改进Stable Diffusion等文生图模型,提出了先进的RichHF-18K数据…

批归一化(Batch Normalization)和层归一化(Layer Normalization)的作用

在深度学习领域,归一化技术被广泛用于加速神经网络的训练速度并提高其稳定性。本文将介绍两种常见的归一化方法:批归一化(Batch Normalization, BN)和层归一化(Layer Normalization, LN),并通过…

在虚拟机中安装centos系统,及通过安装包安装jdk1.8,mysql5.7,redis7.2

在虚拟机中安装centos系统,及通过安装包安装jdk1.8,mysql5.7,redis7.2 第一章 CentOS7的下载1.1.使用阿里云开源镜像站下载。 第二章 CentOS7的配置2.1.通过VMware 创建一个CentOS7虚拟机2.1.1.打开软件,点击如箭头所示按钮,创建虚拟机2.1.2.…