分享

hive sum over分析函数结果不一样

wangzhenqiang 发表于 2015-8-6 17:56:33 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 2 22314
本来想在HIVE下发的,但是权限不足,只能发这了

uid                     dim_id             product_total_qty          dim_type   behavior_type
61722647768     cat10000092         1                              cat3         delivery
61722647768     cat10000092         1                              cat3        nodelivery
针对上面2行记录,用
select
  uid
  ,dim_id
  ,sum(product_total_qty)   nums
  ,sum(product_total_qty) over (partition by uid ) all_nums
from tag.sta_cust_behavior
where dim_type='cat3' and uid =61722647768  and behavior_type in ('delivery','nodelivery')
group by uid,dim_id,product_total_qty

执行结果为什么是

61722647768     cat10000092     2       1

按道理应该是61722647768     cat10000092     2       2



已有(2)人评论

跳转到指定楼层
bob007 发表于 2015-8-6 21:46:59

over属于高级用法,楼主可以慢慢琢磨,多次试验


select
  uid
  ,dim_id
  ,sum(product_total_qty)   nums
  ,sum(product_total_qty) over (partition by uid ) all_nums
from tag.sta_cust_behavior
where dim_type='cat3' and uid =61722647768  and behavior_type in ('delivery','nodelivery')
group by uid,dim_id,product_total_qty


去掉红字部分,相应应该出现楼主的结果
回复

使用道具 举报

wangzhenqiang 发表于 2015-8-17 19:00:57
bob007 发表于 2015-8-6 21:46
over属于高级用法,楼主可以慢慢琢磨,多次试验

sum(product_total_qty)   nums
,sum(product_total_qty) over (partition by uid ) all_nums
去掉就和上面一样了

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条