2017-07-06 3 views
0

EsperとEPLには一般的に2つのユースケースがありますが、基本的にはどちらかといえます。最初に、firstunique(*parameters*).win:time(*time*)を使用して、タイムウィンドウ内のすべてのユニークなイベントを捕捉する必要があります。lastUnique()の反対

私がする必要があるのは、正反対です。基本的には、そのウィンドウに到着し、そのステートメントによってスローされないすべてのイベントを基本的にキャッチします。

どうすればこの問題を解決できますか?ありがとう!

答えて

0

私は実際に解決策を見つけました。これは、パラメータを比較する上で受信イベントに対して一意のIDを使用します。これは、サブクエリでのウィンドウが最初に満たされることになるのでは、すべてのイベント(重複やユニークなイベントを)返します方法が存在する私が持っていた問題を解決し

select * from Event a where exists (select * from Event.std:firstUnique(*parameters*).win:time(*time*) b where a.eventId <> b.eventId) 

クエリは次のようになります。

0

サブクエリを使用し、「存在しません」。例:

select * from Event e1 where not exists (select * from Event#firstunique(*parameters*)#time(*time*) e2 where e1.parameters = e2.parameters) 
+0

これは機能しません。まず第一に、私は重複が欲しいので、* exists *と* not exist *を使うべきです。しかし、それでも問題は、最初のクエリを実行した時点で、サブクエリウィンドウにイベントが既に追加されているため、実際にはそうでない場合は重複しているように動作するため、すべてのイベントがキャッチされます。 –