我有一个表,其中包含每个项目的每月销售额。我需要每个项目的当月销售额旁边的最近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
答案 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
不同,请使用适当的转换,以便按预期进行排序。