我有一个基本的Esper查询如下:
@Name("MyTestQuery")
@Description("My First Test Query")
select sum(qty), venue
from MyTestWindow
group by venue
查询似乎复制了我的总和的结果,即如果我发送的数量为10,我的查询将多次触发并输出:
10,20,30,40
但是,如果按功能删除组,则只输出10。
有人能说出为什么会这样吗?
答案 0 :(得分:0)
通常,您需要使用窗口限定Stream名称(MyTestWindow),所以它是 "来自MyTestWindow.win:time(1秒)"。您需要从许多Epser优惠中选择适当的窗口类型,具体取决于您的应用程序。
这个例子:
select sum(qty), venue
from MyTestWindow.win:time_batch(1 sec)
group by venue
having sum(qty) is not null
您可以在http://esper-epl-tryout.appspot.com/epltryout/mainform.html
对此进行简单测试答案 1 :(得分:0)
答案 2 :(得分:0)
您可能必须在select中使用“distinct”功能以避免重复。当您不使用触发变量时,Esper有时会创建重复事件,因此distinct可以让您摆脱不需要的事件。
答案 3 :(得分:-1)
您可以在一次更新和合并功能中使用win:time_batch
指定的时间间隔来处理null
值
选择场地,总和(合并(ty,0))
from MyTestWindow.win:time_batch(1 sec)
group by venue