2014-05-08 40 views
1

我有一个艾斯波查询如下所示:艾斯波合并查询结果

@Name("MyFirstEvent") 
select a.groupID as groupdID,count(*) as result 
from pattern[every a=MyFirstEvent where timer:within(10 sec)] 
where a.value > 60 
group by a.groupID 
having count(*) >= 3 

这似乎很好地工作。但是,我有一个要求将该查询的结果与另一个查询的结果相结合。

例如 - 如果我看到这个查询产生一个结果,然后我看到另一个查询产生一个结果(彼此在10秒内),那么我想产生第三个事件。

你如何在Esper中做到这一点?我试着编写一个查询:select * from pattern[every a=MyFirstEvent -> b=MySecondEvent],但它说它无法将MyFirstEvent解析为类型。

我想过使用命名窗口来存储每个查询的结果,然后查询窗口。这会工作吗?

回答

0

多一点调查后我发现,我做最简单的方法是:

  1. 创建两个新的窗口,暂时将事件结果从我的前两个查询存储。
  2. 创建第三个查询,只查询前两个窗口,然后将结果连接在一起生成第三个事件。