真正理解了hive的开窗函数的一个小细节

我就以我最近遇到的avg开窗函数为例:

1.avg函数传统数据库就是求平均数,有次在工作中遇到了需要求平均数,自然而然就想到了avg这个函数,用的是开窗函数的avg(字段) over(partiontion by 字段2 order by 字段3),但我遇到了什么问题呢,就是没理解开窗的avg,求出来的平均数不是我想要的那种。假设有三条数据,分数依次是 1,2,3,按我的理解是最终结果应该都是2,2,2,可实际上是,1,1.5,2。原因就在于order by 这里,如果你去掉order by就是我想要的结果,如果加上order by ,

(1)第一条数据分数:它就是第一条数据的平均分,1

(2)第二条数据分数:第二条数据和第一条数据到平均数,(1+2)/2

(3)第三条数据分数:就是第一条和第二条和第三条的平均数  (1+2+3)/3

我查过资料,很多人描述的也对,但就是这个细节没抠出来,让我第一次也差点栽了,类似的sum,mix,max等开窗函数跟我上述讲的也一样的道理,今天才彻底理解了这个开窗函数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值