2016-06-15 8 views
0

私のユーザー定義関数から返された戻り値に基づいてイベントをフィルタリングするesper式を記述したいと考えています。私はこのような質問を書いた。2つのパラメータをとるユーザー定義関数

select window(*), 'CANDLE NAME' as candleType 
from CandleStickEvent(myFunction(*) = 'true').win:length(2) 

これは働いていたけど、それは一度に一つだけCandleStickEventオブジェクトを渡しますが、私は、ウィンドウ内の両方のオブジェクトを渡したいです。

これを達成するには、クエリにも従ってみました。しかし、何も動作しませんでした。

"select window(*), 'CANDLE NAME' as candleType " 
"from CandleStickEvent(myFunction(window(*)) = 'true').win:length(2) " 

これは、このエラーメッセージ、

「ウィンドウ」集約関数は、集約イベントが削除ストリームを提供することを要求する与えます。 、それはすべてのエラーを与えるのではなく

"select window(*), 'CANDLE NAME' as candleType " 
"from CandleStickEvent.win:length(2) " 
"output when myFunction(*) = 'true'" 

もクエリ以下「lastever」または「n番目の」の代わりに

I試行を、ストリームにデータウィンドウを定義するか「firstever」を使用してください私の関数がトリガされることはありません。

誰でもこの要件を満たす方法を見つけるのを助けることができます。

ありがとうございます。

答えて

1

SQLでは、having節が集約に対するフィルタリングに使用され、EPLはSQL標準に準拠しています。 "... have somefunc(ウィンドウ(*))"を試してください