Esper 中的简单子查询
Simple subquery in Esper
我希望能够嵌套以 Esper 的 EPL 表达的查询。假设我想检测这种模式:A -> (B -> C)
。 (A
、B
和 C
是事件类型,->
是 EPL 的序列运算符。)
这是代表 B -> C
的查询:
select * from pattern [every (b=B -> c=C)]
然后我想做以下事情:
select * from pattern [every (a=A -> bc=
(select * from pattern [every (b=B -> c=C)])
)]
实际上,如果这样的事情是可能的就最好了:
select * from pattern [every (b=B -> c=C)]) as bc
select * from pattern [every (a=A -> bc)]
这样,第一个查询只绑定到一个标识符 bc
,然后可以在第二个查询中使用。那太棒了!
谁能告诉我 EPL 中是否存在类似的语法?我很感激任何提示!
查询可以是...
every (a=A -> (every (b=B -> c=C))]
或者将 "bc" 插入另一个流并使用它...
insert into BCStream select * from pattern[every b=B -> c=C]; // also note lack of parens
和
select * from pattern[a=A -> BCStream]
我希望能够嵌套以 Esper 的 EPL 表达的查询。假设我想检测这种模式:A -> (B -> C)
。 (A
、B
和 C
是事件类型,->
是 EPL 的序列运算符。)
这是代表 B -> C
的查询:
select * from pattern [every (b=B -> c=C)]
然后我想做以下事情:
select * from pattern [every (a=A -> bc=
(select * from pattern [every (b=B -> c=C)])
)]
实际上,如果这样的事情是可能的就最好了:
select * from pattern [every (b=B -> c=C)]) as bc
select * from pattern [every (a=A -> bc)]
这样,第一个查询只绑定到一个标识符 bc
,然后可以在第二个查询中使用。那太棒了!
谁能告诉我 EPL 中是否存在类似的语法?我很感激任何提示!
查询可以是...
every (a=A -> (every (b=B -> c=C))]
或者将 "bc" 插入另一个流并使用它...
insert into BCStream select * from pattern[every b=B -> c=C]; // also note lack of parens
和
select * from pattern[a=A -> BCStream]