【Hive】窗口函数详解
文章目录
- 1 窗口函数概述
- 2 语法规则
- 3 窗口聚合函数的使用
- 4 窗口表达式
- 5 窗口排序函数
- 5.1 row_number家族
- 5.2 ntile函数
- 6 窗口分析函数
最近工作中经常遇到窗口函数,看了一些视频讲的不是很清楚,于是又查阅了一些资料,通俗的学透它,理解它,之后忘记也可以看这个想起来
1 窗口函数概述
直观去感受一下窗口函数和group by分组之间的区别
2 语法规则
3 窗口聚合函数的使用
主要包括sum,max,min,avg,接下来以sum为例,其它都类似。窗口函数配合聚合函数功能非常强大,在工作中用的很多
特别注意的点:
(1)要不要使用order by。order by当且仅当 在聚合函数中是累计求和的概念,
(2)order by 后面加不加窗口表达式,如果不加,默认从第一行到当前行
(3)上面两个可以溯源到官网:窗口函数
4 窗口表达式
一些例子可供参考
5 窗口排序函数
5.1 row_number家族
rank:在每个分组中,为每行分配一个从1开始的序列号,考虑重复,例如[1,2,2,4]
row_number:在每个分组中,为每行分配一个从1开始的唯一序列号,递增不重复,例如[1,2,3,4]
dense_rank:在每个分组中,为每行分配一个从1开始的序列号,考虑重复,例如[1,2,2,3]
记忆方法:
对于row_number理解它为行号就行,行号肯定是不重复的;对于dense_rank,理解dense,减少,说明如果出现重复的,序号数字会小于行数。记忆两个剩下的就记住了
注意:
这里order by 不要有累计的想法,但原理上窗口大小还是累计增加的,为了搞混,我们只需要记住这个就是排序
5.2 ntile函数
6 窗口分析函数
举个例子,以LAG为例
FIRST_VALUE:如果出现order by 就是截止到当前行的第一行
LAST_VALUE:如果出现order by 就是截止到当前行的最后一行
【Hive】窗口函数详解相关推荐
- 大数据技术-hive窗口函数详解
有不少同学一听这个标题,hive窗口函数是什么鬼?没听说过还有窗口函数这个东西啊,其实它的用处可大了,下面听小千慢慢道来. hive窗口函数 窗口函数指定了函数工作的数据窗口大小(当前行的上下多少行) ...
- Hive窗口函数详解
1.概述 (1)窗口函数是一组特殊函数 ①扫描多个输入行来计算每个输出值,为每行数据生成一行结果 ②可以通过窗口函数来实现复杂的计算和聚合 (2)语法 Function (arg1,..., arg ...
- hive的窗口函数详解
1.1 hive窗口函数 窗口函数是什么鬼? 窗口函数指定了函数工作的数据窗口大小(当前行的上下多少行),这个数据窗口大小可能会随着行的变化而变化.窗口函数和聚合函数区别? 窗口函数对于每个组返回多行 ...
- Hive入门详解操作
Hive 第一章 Hive简介 1.1. Hive的简介 1.1.1 hive出现的原因 FaceBook网站每天产生海量的结构化日志数据,为了对这些数据进行管理,并且因为机器学习的需求,产生了hiv ...
- Hive beeline详解
Hive客户端工具后续将使用Beeline 替代HiveCLI ,并且后续版本也会废弃掉HiveCLI 客户端工具,Beeline是 Hive 0.11版本引入的新命令行客户端工具,它是基于SQLLi ...
- Hive Metastore详解大全
1.介绍 Hive所有表和分区的元数据都通过Hive Metastore进行访问.使用JPOX ORM解决方案(Data Nucleus)持久化元数据,因此它支持的任何数据库都可以被Hive使用.它支 ...
- MySQL/Hive 常用窗口函数详解及相关面试题
目录 一.窗口函数概述: 1.窗口函数的分类 2.窗口函数与普通聚合函数的区别: 二.窗口函数的基本用法 1.基本语法 2.设置窗口的方法 1)window_name 2) partition by ...
- java调用kettle连hive_使用java连接hive,并执行hive语句详解
安装hadoop 和 hive我就不多说了,网上太多文章 自己看去 首先,在机器上打开hiveservice hive --service hiveserver -p 50000 & 打开50 ...
- concat 不是可以识别的 内置函数名称。_新特性解读 | MySQL 8.0 窗口函数详解
背景 一直以来,MySQL 只有针对聚合函数的汇总类功能,比如MAX, AVG 等,没有从 SQL 层针对聚合类每组展开处理的功能.不过 MySQL 开放了 UDF 接口,可以用 C 来自己写UDF, ...
最新文章
- 解决phpmyadmin3.4空密码登录被禁止登陆的方法
- IIS6+Tomcat7整合
- Sublime Text如何安装和卸载插件
- join left semi_HIVE--left semi join
- Qt模态界面设置setWindowModality禁止其他界面响应
- SQLServer常用系统视图
- php 时间戳获取周几,PHP实现根据时间戳获取周几的方法,php戳获取周_PHP教程
- SVN使用方法及问题解决
- python sort sorted 排序详解
- f5 系统损坏,重新安全系统
- No module named ‘lightgbm‘
- 怎么看外文文献的影响因子_怎么看文章的影响因子?
- 一文带你彻底了解电子灌封(灌胶)工艺技术
- 互联网晚报 | 12月9日 星期四 | 微博正式登陆港交所;OPPO官宣首款自研芯片即将发布;腾讯启动“技术公益创投计划”...
- 腾讯云通信音视频通话最小化悬浮小窗
- python 实现一个反向单位矩阵
- winscp 进入mysql命令_Winscp使用密钥登录
- 无线路由的四种加密方式
- 利用摄像头实现人员活动检测(python+openCV)
- VSCode调试C/C++项目