У меня есть последовательность событий, которая выглядит следующим образом:
- Событие А запускает последовательность
- Произошло несколько событий B
- Событие C останавливает последовательность
Я сделал это с шаблоном [каждый A -> (B до C)], это кажется правильным (как вы думаете?). Но я изо всех сил пытаюсь получить и собрать информацию из событий B, которые возникли в последовательности. Я хотел бы просто иметь подсчет и, возможно, некоторые средние значения, но, похоже, ничего не работает (пример 1 возвращает 1, пример 2 возвращает 0, а пример 3 возвращает ноль, даже если мои события B присутствуют).
insert into CreateMeasurement
select
C.source as source,
"carDrivingAnalyse" as type,
C.time as time,
{
"example1", count(*),
"example2", count(B),
"example3", B.countOf()
} as fragments
from pattern [
every A = EventCreated(
type = "Ignition",
getString(A, "Ignition.status") = "ON")
-> (
B = EventCreated(
type = "DrivingEvent",
source = A.source,
getString(B, "DrivingEvent.prop1") = getString(A, "Ignition.prop1"),
getNumber(B, "DrivingEvent.prop2") = getNumber(A, "Ignition.prop2"))
until C = EventCreated(
type = "Ignition",
getString(C, "Ignition.status") = "OFF",
source = A.source,
getString(C, "Ignition.prop1") = getString(A, "Ignition.prop1"),
getNumber(C, "Ignition.prop2") = getNumber(A, "Ignition.prop2"))
)
]