hiveSql完成类递归计算.pdfVIP

  • 3
  • 0
  • 约2.88千字
  • 约 4页
  • 2024-01-03 发布于宁夏
  • 举报

hiveSql完成类递归计算

和同事⼀起探讨了个问题挺有意思,记录⼀下!

问题

每个⽉有数据如下:

需要计算截⽌到每个⽉,前⽉距离当⽉⽉数乘前⽉阅读数累计之和。

类似递归操作:本⽉到第⼀个⽉的累计和,前⼀个⽉到第⼀个⽉的累计和…⼀直到第⼆个⽉到第⼀个⽉的和再加上第⼀个⽉最终所有累积

和的合计。

听起来⽐较绕,举个栗⼦:

图中每个⽉的阅读量是a,b,c,d,e。计算结果result如图公式。

1.截⽌到2014-01⽉:只有a,距离本⽉为1个⽉,即a*1;

2.截⽌到2014-02⽉:1⽉距离本⽉为2个⽉,即1⽉的a为a*2,2⽉距离本⽉为1,即b,求和为a*2+b;

3.截⽌到2014-03⽉:1⽉距离本⽉为3个⽉,及1⽉的a为a*3,2⽉距离本⽉为2,即b*2,3⽉距离本⽉为1,即c,求和为

a*3+b*2+c;

以此类推计算截⽌到每个⽉的前⽉累计。

到这⾥可以先思考下怎么做。。。

最终同事⽤excel完成了计算。这⾥想⽤hiveSql看看能不能统计,想了下思路。

思路:

原本想的是横向拉平数据,在每个⽉的后⾯都计算好当⽉所需要的前⽉乘后的数据,再横向累加,如下图:

这个思路⽤sql实现有两个关键点:a.拉平数据和b.对应拉平数据后的乘数(前⽉距离本

文档评论(0)

1亿VIP精品文档

相关文档