我正在尝试总结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。行1至5。排除20180324 A 15)
20180331 1234 42(总和(12 + 10 + 10)第2至7行。不包括20180324A 1234 15)
20180324 1234 35(sum(15 + 10 + 10 + 10)第4至7行排除(20180324 A和 20180310 B)
20180317 1234 20(不包括20180310 B,5至7)
20180310 1234 20(6-7行)
我试图从Windows函数中获取移动4个范围的总和,但不允许我仅考虑最大期间值。
select sum(value) over (partition by product order by period range 3 preceding)
from table;
Window.partitionBy("product").orderBy("period").rangeBetween (-3,0)