1

単純な SiddhiQL クエリを使用して、分のエントリとこれらのタイムスタンプまで同じタイムスタンプを持つレコードの数を取得しています。クエリは次のとおりです。

from inputStream
select time:dateFormat(ts,'yyyy-MM-dd HH:mm') as formatedTs, count(formatedTs)
group by formatedTs
insert into outputStream;

それは私にエラーを与えますmismatched input 'group' expecting {'*', '+', '-', '/', '%', '<', '<=', '>', '>=', '==', '!=', AS, OR, AND, IN}group byこの文脈で句の何が問題になっていますか?

4

1 に答える 1

0

エラーの理由:

ASこの特定のエラーは、次の欠落が原因で発生していますcount(formatedTs)

(これはエラー メッセージにも示されます。 mismatched input 'group' expecting {'*', '+', '-', '/', '%', '<', '<=', '>', '>=', '==', '!=', AS, OR, AND, IN} クエリ コンパイラgroupは、 が見つからないために間違った場所にあると考えますAS)

要修正:

したがって、selectステートメントは、次のように修正する必要があります。

select time:dateFormat(ts,'yyyy-MM-dd HH:mm') as formatedTs, count(formatedTs) as tsCount

あなたが必要とするかもしれないさらなる修正:

また、 にはinputStreamという名前の属性がありますformatedTsか? そうでない場合、ステートメントを修正した後select、次のような別のエラーが発生します。

「formatedTs」が「inputStream」に存在しないため、属性タイプが見つかりません

カウントする属性はinputStream

その場合は、次のクエリ (正常にコンパイルされるはずです) が役立つ場合があります。

from inputStream
select time:dateFormat(ts,'yyyy-MM-dd HH:mm') as formatedTs, count(ts) as countTs
group by ts
insert into outputStream;

アップデート

書式設定されたタイムスタンプでグループ化する必要があるため、クエリを更新します。

from inputStream
select time:dateFormat(ts,'yyyy-MM-dd HH:mm') as formatedTs
insert into innerStream;

from innerStream
select formatedTs, count(formatedTs) as countTs
group by formatedTs
insert into outStream;
于 2016-06-18T16:15:19.660 に答える