我正在尝试在字段的平均值超过阈值一分钟时引发事件。我将对象定义为:
class Heartbeat
{
public string Name;
public int Heartbeat;
}
我的病情定义为
select avg(Heartbeat) , Name
from Heartbeat.std:groupwin(Name).win:time(60 sec)
having avg(Heartbeat) > 100
然而,事件永远不会被解雇,尽管我发出了Heartbeat值超过100的许多事件。对我做错了什么建议?
提前致谢
答案 0 :(得分:0)
它让很多人感到困惑,但由于所有组的时间相同,您可以简化查询并删除groupwin。本节中的文档说明解释了原因:http://esper.codehaus.org/esper-4.11.0/doc/reference/en-US/html_single/index.html#view-std-groupwin 有或没有groupwin的语义都是一样的。
我认为你想要group-by(而不是groupwin),因为group-by控制聚合级别,groupwin控制数据窗口级别。
新查询: 选择avg(心跳),来自Heartbeat.win的名称:时间(60秒)按名称分组avg(心跳)> 100