Esper查询最大值的分组依据-SQL

Esper查询最大值的分组依据-SQL,sql,events,max,esper,Sql,Events,Max,Esper,我是Esper开发的新手,有个小问题 在SQL中,我有以下查询要转换为Esper:按用户从选项卡组中选择最大(时间) 我想做的是,对于我拥有的所有事件,我想为每个用户选择最大(时间)并显示它 在Esper中,我将其转换为以下方式:按用户从窗口组中选择最大(时间) 但是,与SQL不同的是,窗口中出现的每个事件都会显示出来,因此我最终会在控制台中获取每个用户的所有时间值,而不是最高值:/i它没有执行我假设的“分组依据”。如果你对如何解决这个问题有任何建议,我很乐意接受:) 问候, Benjamin

我是Esper开发的新手,有个小问题

在SQL中,我有以下查询要转换为Esper:按用户从选项卡组中选择最大(时间)

我想做的是,对于我拥有的所有事件,我想为每个用户选择最大(时间)并显示它

在Esper中,我将其转换为以下方式:按用户从窗口组中选择最大(时间)

但是,与SQL不同的是,窗口中出现的每个事件都会显示出来,因此我最终会在控制台中获取每个用户的所有时间值,而不是最高值:/i它没有执行我假设的“分组依据”。如果你对如何解决这个问题有任何建议,我很乐意接受:)

问候,


Benjamin 6

Esper is进行连续查询处理,如果有人在听,则连续查询始终生成输出。您可以发送所有事件,然后使用“iterate()”,也可以使用fire-and-forget查询或使用输出速率限制,例如“每1分钟输出一次”。

例如,如果您有:
time1=10,user=1&time2=11,user=1->我只想得到time2=11,user=1。但是在esper中,它同时输出这两个,这是正常的。在应用查询之前,是否有保留所有事件的方法

看起来您正在处理一个连续的事件流,您希望从中获取最大值

这不能直接完成,因为Esper中的每个事件都是一个单独的实体。您可以从单个事件中获取最大值,但不能从多个事件中获取最大值。这就是在你的例子中所发生的,你得到了单值事件的最大值。因此,您可以看到打印的所有事件

为了实现您想要的,我建议您应该在Esper中使用窗口或上下文来累积特定时间内的事件(或者,直到满足条件)。然后,从您在窗口中收集的这组事件中,您可以根据您的条件选择最大值,然后打印相同的值


您可以参考Espertech文档了解这一点和。

您好,谢谢您的回复。实际上,我尝试了“每1分钟输出一次”,但它根本没有输出任何内容:改为尝试“每1分钟输出一次快照”(将每分钟输出查询结果,而不管最近一分钟是否有任何新事件)。@xpa1492我尝试了,但仍然得到一个空输出。还有其他想法吗??