Среднее значение за последние 3 месяца рядом со значением текущего месяца в улье - PullRequest
0 голосов
/ 02 апреля 2019

У меня есть таблица, в которой указаны месячные значения продаж для каждого товара.Мне нужно среднее значение продаж за последние 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 голосов
/ 02 апреля 2019

При условии отсутствия данных за месяцы, вы можете использовать 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, используйте соответствующее преобразование, чтобы упорядочение работало как ожидалось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...