Я пытаюсь суммировать движущиеся данные в пределах 4 диапазона.Мне нужно учитывать только M строка устройства с датой топора для суммы операций.
Пример данных Для примера ниже:
строка Значение продукта периода устройства
1 20180407 C 1234 10
2 20180331 A 1234 12
3 20180331 D 1234 10
4 20180324 A 1234 15
5 20180317 B 1234 10
6 20180310 B 1234 10
7 20180310 C 1234 10
Выходные данные должны быть
Значение продукта периода
20180407 1234 42 (20180407 до 20180317. Строки 1to5.Exclude 20180324 A 15)
20180331 1234 42 (сумма (12+ 10 + 10) Строки с 2 по 7. Исключить 20180324A 1234 15)
20180324 1234 35 (сумма (15 + 10 + 10 + 10) строк с 4 по 7. Исключить (20180324 A и 20180310 B)
20180317 1234 20 (исключая 20180310 B, от 5 до 7)
20180310 1234 20 (ряд 6-7)
Я попытался взять сумму перемещения 4 диапазона из функции Windowsно это не позволяет мне учитывать только максимальные значения периода.
select sum(value) over (partition by product order by period range 3 preceding)
from table;
Window.partitionBy("product").orderBy("period").rangeBetween (-3,0)