当事件计数最近12个月窗口

时间:2016-05-03 02:15:18

标签: complex-event-processing esper

我有一个要求,例如,当空闲井计数最近12个月窗口时触发一个事件。

例如:

Well_date Count

1986-01-01 00:00:00 17 1986-02-01 00:00:00 16 1986-03-01 00:00:00 23 1986-04-01 00:00:00 33 1986-05-01 00:00:00 31 1986-06-01 00:00:00 42 1986-07-01 00:00:00 43 1986-08-01 00:00:00 43 1986-09-01 00:00:00 41 1986-10-01 00:00:00 42 1986-11-01 00:00:00 46 1986-12-01 00:00:00 52

输出: 1986-12-01 00:00:00 52

假设,如果事件计数是最近11个月的最小值,那么它将被忽略。

提前致谢

1 个答案:

答案 0 :(得分:0)

这个将为您提供最后一次最大井数的流,即不包括当前事件的最大值:

insert into LastMaxStream select rstream max(well_count) as lastMax from SomeEvent

LastMaxStream可用于比较:

@name('out') select * from SomeEvent(well_count > (select lastMax from LastMaxStream.std:lastevent()));

可能还有其他解决方案,但这是我想到的解决方案。考虑一些时间段将其添加到group-by子句中,或者声明一个上下文,该上下文在1986年开始时开始,在1986年结束时结束,例如。