をエスパーの使用についてのパズル:私はこのようなEPLを作成+「合計」「でグループ」
`String epl = "select objId,sum(c1) from PmData.win:time_batch(3 sec) group by objId";`
、それは非常に簡単です:輸出和(C1)は、スライディングウィンドウに3秒ごとになります。
しかし、私がテストを実行すると、結果は私の予想どおりではないようです。間違っているように見えます。スライディングウィンドウに存在しないobjIdをエクスポートします。ここで
は、結果の印刷です:
はOBJID選択し、PmDataからの和(C1)。勝利:OBJID
によってtime_batch(3秒)基2016年4月8日18時31分16秒
送信イベント:PmData(OBJID = 2、C = 0、時刻= 0)
送信イベント:PmData(OBJID = 0、C1 = 8、時間= 0)
送信イベント:PmData(OBJID = 3、C = 7、時刻= 0)
送信イベント:PmData(OBJID = 0、 c1 = 3、時間= 0)
2016-04-08 18:31:19
のイベント更新結果:{OBJID = 0、SUM(C1)= 11}
イベント更新結果:{OBJID = 2、和(C1)= 0}
イベント更新結果:{OBJID = 3、sum(c1)= 7}
----------------上記は第1ウィンドウです---------------- -------------------
送信イベント:PmData(OBJID = 3、C = 5、時間= 0)
送信イベント:PmData(OBJID = 0、c1 = 2、時間= 0)
送信イベント:PmData(OBJID = 1、C1 = 1、時刻= 0)
2016年4月8日十八時31分22秒
イベント更新結果:{OBJID = 0、SUM( C1)= 2}
イベント結果更新:{OBJID = 1、和(C1)= 1}
イベント更新結果:{OBJID = 2、和(C1)= NULL}
をevents u結果をpdate:{objId = 3、sum(c1)= 5}
----------------第2ウィンドウ----------- ------------------------
送信イベント:PmData(OBJID = 3、C = 4、時刻= 0)
送信イベント:PmData(OBJID = 0、C1 = 6、時刻= 0)
送信イベント:PmData(OBJID = 0、C1 = 3、時刻= 0)
2016年4月8日午後6時31分: 25 イベントの更新結果:{objId = 0、sum(c1)= 9}
のイベント更新結果:{OBJID = 1、和(C1)= NULL}
イベント更新結果:{OBJID = 3、SUM(C1)= 4}
----- -----------上記は3番目のウィンドウです-----------------------------------
**なぜ2番目のwindosがobjId = 2をエクスポートするのですか? 2番目のスライドウィンドウにはイベントがありません(objId = 2)。
しかし、私はこのように照会する場合:
String epl = "select objId,sum(c1) from PmData.win:time_batch(3 sec)
結果はOKです**
は誰でも答えることができますか。?
解決策はありますか(「group_by」を使用しないでください)?
、@ user3613754、thx very mach。私はこの問題を尋ねます。私は問題があります、あなたは私を助けてもらえますか?上記の例のように、私は、スライディングウィンドウ内のobjIdによって、sum(c0)、avg(c1)、max(c2)、min(c3)、最後のイベントのc4、最初のイベントのc5グループを計算します。私は1つのeplでそれらを計算したい。私は次のように書こうとします:String epl = "c1、max(c2)をc2、min(c3)をc3、maxby(fmax(time、c4> 0))。c4としてc4、maxby(fmin(時間、c5> = 0)).c5としてEvent.win:time_batch(5秒)グループからのc5としてobjId "。 c0〜c3はokですが、c4またはc5は常に削除されたスライディングウィンドウから値を取得します。 – alphacome
、@ user3613754ですが、c4またはc5は常に削除されたスライディングウィンドウから値を取得しました。それは私が望んでいない。私は現在のスライディングウィンドウでc4、c5の値を取得します。 – alphacome