Hive窗口函数大全

Hive窗口函数

一、偏移量函数

lag

语法:lag(col,n,default_val)

返回值:字段类型

说明:往前第n行数据。

lag(column字段,第n行,默认值)

lag函数能够取出往前n行的数据值,如果数据为空值,则取默认值

lead

语法:lead(col,n, default_val)

返回值:字段类型

说明:往后第n行数据。

lead(column字段,第n行,默认值)

lead函数能够取出往后n行的数据,如果数据为空值,则取默认值

Tip:lead的英文翻译为领先的,这里的领先指的是当前数据行,因此想要取往后的数据需要使用lead
Tip:lag的英文翻译为落后的,这里的落后指的是当前数据行,因此想要取往前的数据需要使用lag

二、窗口分析函数

first_value

语法:first_value (col,true/false)

返回值:字段类型

说明:当前窗口下的第一个值,第二个参数为true,跳过空值。

first_value能够取出当前窗口下的第一个值,第二参数能够选择跳过空值。

last_value

语法:last_value (col,true/false)

返回值:字段类型

说明:当前窗口下的最后一个值,第二个参数为true,跳过空值。

last_value能够取出当前窗口下的第一个值,第二参数能够选择跳过空值。

Tip:窗口分析函数通常需要对分区数据进行order by排序,经过排序后的再使用窗口分析函数

三、排序函数

rank

语法:rank() over(......)

返回值:int

说明:排名相同时会重复,总数不会减少(12225......)。

rank为跳跃排序函数

dense_rank

语法:dense_rank() over(......)

返回值:int

说明:排名相同时会重复,总数会减少(12223......)。

dense_rank为不跳跃排序函数

row_number

语法:row_number() over(......)

返回值:int

说明:数据值相同时不会重复,总数不会减少(1234567......)。

row_number为顺序唯一排序函数

Tip:排序函数为面试常考题目,务必掌握捏。

相关推荐
Database_Cool_43 分钟前
AnalyticDB MySQL vs StarRocks/ByteHouse:云数仓选型指南——全托管 vs 自建方案
数据库·数据仓库·mysql·阿里云
涤生大数据2 小时前
从 ETL 到 Agent:AI数据工程如何搭建企业级“数据工厂“
数据仓库·人工智能·etl
Eileen Seligman2 小时前
0CTF/TCTF 2023 OLAPInfra Nashorn RCE + HDFS UDF RCE
大数据·hadoop·hdfs·ctf·rce
Sonnie0000001(马库斯)3 小时前
【Hadoop之HDFS替换方案】【Haoop远程挂载Cubefs】Cubefs对接Hadoop生态
大数据·hadoop·hdfs
好问者3 小时前
【大数据】:hdfs相关进程启停管理命令
大数据·hadoop·hdfs
段一凡-华北理工大学8 小时前
工业领域的Hadoop架构学习~系列文章18:制造业Hadoop应用实践 - 从数据到智能的完整闭环
大数据·人工智能·hadoop·分布式·学习·架构·高炉炼铁
属鼠哥8 小时前
HDFS 短路本地读取系列(二):你以为的「本地读」和真正的「本地读」—getLegacy vs getBlockReaderLocal 的本质差异
大数据·hadoop
段一凡-华北理工大学9 小时前
工业领域的Hadoop架构学习~系列文章17:Hadoop性能调优- 调度集群每一分性能
大数据·人工智能·hadoop·分布式·学习·架构·高炉炼铁
段一凡-华北理工大学1 天前
工业领域的Hadoop架构学习~系列文章15:机器学习与大数据融合 - 工业智能的算法引擎
大数据·人工智能·hadoop·机器学习·架构·工业智能体·高炉炼铁智能化
Database_Cool_1 天前
AnalyticDB MySQL vs Hologres:阿里云内部数仓产品如何选——场景化选型指南
数据库·数据仓库·mysql·阿里云