中の繰り返しイベントをカウント:エスパーは、私はこのように書き一連のイベントを持っているパターン
- イベントAは、シーケンス
- 複数のイベントBが起こる
- イベントCは、シーケンス
私はパターン(すべてA - >(BまでC))でそれを行いました、それは正しいようです(あなたはどう思いますか?)。しかし、私はシーケンスで発生したBイベントから情報を取得し、集約するのに苦労しています。私は単純に数といくつかのavgsを持っていますが、何も動作していないようです(example1は1を返します。例2は0を返し、example 3はnullを返します。
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"))
)
]
あなたの答えをありがとう、私はesperのドキュメントを読んでいると私は文脈を書こうとしていますが、私はすでに私のパターンを翻訳するのに苦労しています。イベントBとCはAと同じソースを持っていなければならないと言って私の例を単純化しましたが、実際には私が元の投稿を編集したプロパティが多くあり、今はgetString/getNumberを複製できません私の文脈では機能します。 –
また、条件付きカウントはどうですか?何か "e.countOf(イベント - > getNumber(イベント、" c8y_HarshBehavior.speed ")> 100)のようなものですが、これは動作しません。 –
私はgetNumber(イベント、 "c8y_HarshBehavior.speed")> 100をwhere節に入れようとしています – TyrManuZ