窗口函数over.md

over()
over() 函数在Hive中运用广泛,通常搭配row_number() ,min(),max(),sum()来使用,总结下over函数划定窗口的范围
准备数据导入表中

id    name    num
1    a    1
2    b    3
3    a    5
4    c    9
5    b    3

》》1:over() 此时每一行的窗口都是所有的行

SELECT id,name,num,
sum(num) over() sum1 from aa

在这里插入图片描述

》》2:over(order by id) id=1的窗口只有一行,id=2的窗口包括id=1,id=2

SELECT id,name,num,
sum(num) over(order by id) sum1 from aa

在这里插入图片描述

》》3:over(partition by name) 每一行根据 name来区分窗口

SELECT id,name,num,
sum(num) over(partition by name) sum1 from aa

在这里插入图片描述

》》4:over(partition by name order by id) 每一行根据 name来区分窗口,再根据order by 取具体的范围

SELECT id,name,num,
sum(num) over(partition by name order by id) sum1 from aa

在这里插入图片描述

》》5:over( order by id range between 1 preceding and 1 following ) range 代表范围 preceding 向前 following 向后 窗口范围当前行前后一行

SELECT id,name,num,
sum(num) over( order by id range between 1 preceding and 1 following ) sum1 from aa

在这里插入图片描述

》》6:over( order by id range between CURRENT ROW AND 1 following ) 窗口范围当前行和后面一行

SELECT id,name,num,
sum(num) over( order by id range between CURRENT ROW AND  1 following ) sum1 from aa

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

翁老师的教学团队

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值