【Hive】通过数学转换实现乘法聚合函数

在其他博客上看到,分享给大家!

1、问题
数据如下:

table 1
date1   price
2018/1/1    12
2018/1/2    12
2018/1/3    12
2018/1/4    12
2018/1/5    12
2018/1/6    12
2018/1/7    12

table 2
date2   factor
2018/1/3    0.2
2018/1/6    0.3


2、方法
逻辑:当date1 < date2,price * factor(factor为累乘,eg.date1=2018/1/1时,则为12 * 0.2 * 0.3)。
方法:对factor进行多次对数转换,将乘法转化为加法,即power(10, sum(log(10, factor)))

select 
    date1,
    power(10, sum( if(date1<date2, log(10, factor), 0))) * avg(price) as newprice 
from table1
left join table2 on 1=1
group by date1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值