蜂巢中当前月份值的最近3个月平均值

时间:2019-04-02 13:58:45

标签: hive hiveql

我有一个表,其中包含每个项目的每月销售额。我需要每个项目的当月销售额旁边的最近3个月的平均销售额。

需要在配置单元中执行此操作。

示例输入表如下所示

Item_ID Sales   Month
A   4295    Dec-2018
A   245     Nov-2018
A   1337    Oct-2018
A   3290    Sep-2018
A   2000    Aug-2018
B   856     Dec-2018
B   1694    Nov-2018
B   4286    Oct-2018
B   2780    Sep-2018
B   3100    Aug-2018

结果表应如下图所示

Item_ID Sales_Current_Month     Month           Sales_Last_3_months_average
A           4295                Dec-2018        1624
A           245                 Nov-2018        2209
B           856                 Dec-2018        2920
B          1694                 Nov-2018        3388.67

1 个答案:

答案 0 :(得分:0)

假设没有丢失的月份数据,则可以使用avg窗口函数来完成此操作。

select t.* 
      ,avg(sales) over(partition by item_id order by month rows between 3 preceding and 1 preceding) as avg_sales_prev_3_months
from tbl t

如果month列的格式与yyyyMM不同,请使用适当的转换,以便按预期进行排序。