Hive窗口函数语法

语法:
Function(arg1 ……) over([partition by arg1 ……] [order by arg1 ……] [<window_expression>])
Function(arg1 ……) 支持的函数:
① 聚合函数(aggregate functions):sum()、max()、min()、avg()等。
② 数据排序函数(sort functions):rank(),row_number()、dens_rank()、ntile()等。
③ 统计和比较函数(analytics functions):lead()、lag()、first_value()等。
Over([partitioin by arg1 ……] [order by arg1 ……]) 解释:
① Partition by:表示将数据先按字段进行分区
② Order by:表示将各个分区内的数据按字段进行排序
Window_expression窗口边界设置
Preceding    往前
Following    往后
Current row    当前行
Unbounded preceding    从前面的起点开始
Unbounded following    到后面的终点结束
使用详解:
① 如果不指定partition by,则不对数据进行分区,换句话说,所有数据看作同一个分区。
② 如果不指定order by, 则不对各分区进行排序,通常用于那些顺序无关的窗口函数,如sum()。
③ 如果不指定窗口子句:
不指定order by,默认使用分区内所有行,等同于
Function() over(rows between unbounded precedeing and unbounded following)
如果指定order by,默认使用分区内第起点到当前行,等同于
Function() over(rows between unbounded preceding and current row)

注意:NTILE、ROW_NUMBER、RANK、DENSE_RANK等序列函数不支持window子句。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值