Заявление о событии NEsper/Esper EPL

Может ли кто-нибудь помочь мне определить оператор EPL, чтобы поймать событие, когда возникает следующая ситуация:

Предполагая, что есть события с 3 атрибутами - (string)Symbol, (boolean)Value, (datetime)Timestamp.

Если события имеют один и тот же символ и значение одновременно истинно и ложно, они должны быть захвачены. Например, событие1 (Символ — яблоко, Значение — Истина, Отметка времени — 20210614-14:00:00) и событие2 (Символ — яблоко, Значение — Ложь, Отметка времени — 20210614-14:00:00). Но если события имеют разные символы (например, яблоко и банан), их следует игнорировать (не захватывать).

Спасибо за любую помощь.

Нарсу


person Narsu    schedule 14.06.2021    source источник
comment
События (символ, значение, метка времени) с одинаковыми меткой времени и символом и разными значениями (истина и ложь) должны быть захвачены.   -  person Narsu    schedule 14.06.2021


Ответы (1)


Это будет соответствовать двум событиям, непосредственно следующим друг за другом (не было указано никаких критериев относительно того, что может произойти между ними)

select * from MyEvent
  match_recognize (
    partition by symbol
    measures a, b
    pattern (a b)
    define
      b as b.timestamp = a.timestamp and b.value != a.value
)
person user3613754    schedule 14.06.2021