HIve 分析和窗口函数 WindowingAndAnalytics

Hive在0.11版本后引入窗口查询功能,用于支持如分组排名、滑动平均等复杂分析。窗口函数包括Rank、Dense_Rank、Row_number等,可以配合OVER子句和PARTITION BY、ORDER BY进行使用。窗口范围设置涉及到ROW和RANGE关键字,ORDER BY的使用需谨慎,因为它会影响窗口区间。例子展示了不同窗口设置对结果的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

常见的GROUP BY 和 DISTRIBUTE BY 等语句并不能支持诸如分组排名、滑动平均值等计算,原因是 GROUP BY 语句只能为每个分组的数据返回一条记录,而非每条数据一行。但是,Hive 0.11之后引入了窗口查询功能,使用 WINDOW 语句我们可以基于分区和窗口,在实现分组分析的目的的同时,为每条数据都生成一行结果记录。

语法形式如下:

Function(arg1,....argn) OVER([PARTITION BY<...>] [ORDER BY<...>] [window_clause])
  1. 窗口函数Windowing functions
Windowing functions 介绍
LEAD(col,n,DEFAULT) 用于统计窗口内往下第n行的值。参数涵义:参数col为列名,第二个参数n为往下第n行(可选,默认为1),第三个参数为默认值(当往下第n行为NULL时候,取默认值,如不指定,则为NULL)
LAG(col,n,DEFAULT) 用于统计窗口内往上第n行值。参数意义:参数col为列名,第二个参数n为往上第n行(可选,默认为1),第三个参数为默认值(当往上第n行为NULL时候,取默认值,如不指定,则为NULL)
FIRST_VALUE(col,false) 取分组内排序后,截止到当前行,第一个值。参数:第一个参数col代表分析列,第二个参数是boolean类型,表示是否跳过NULL值(默认false)
LAST_VALUE(col,false) 取分组内排序后,截止到当前行,最后一个值。参数涵义与FIRST_VALUE一致
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值