Esper查询group by for max(value) - SQL

时间:2014-10-31 08:52:51

标签: sql events max esper

我是Esper开发的新手,我有轻微的问题。

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

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

在Esper中,我通过以下方式对其进行了翻译:从用户的窗口组中选择最大(时间)。

但是,与SQL不同的是,每个显示窗口的事件都会显示出来,因此我最终会在控制台中为每个用户提供所有时间值,而不是最高值:/它没有执行" group by"我假设。如果你有任何关于如何解决这个问题的提示,我很乐意接受它们:)

的问候,

本杰明6

3 个答案:

答案 0 :(得分:0)

Esper是连续查询处理,如果有人正在监听,连续查询会一直生成输出。您可以做的是发送所有事件然后使用“iterate()”,或者您可以使用“即发即弃”查询或使用输出速率限制,例如“每1分钟输出一次”。

答案 1 :(得分:0)

例如,如果你有: time1 = 10,user = 1& time2 = 11,user = 1 --->我只想得到time2 = 11,user = 1。然而,在esper中,它输出两者,这是正常的。在应用查询之前保留所有事件的任何方法?

答案 2 :(得分:0)

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

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

为了达到你想要的效果,我建议你在Esper中使用Windows或上下文来累积特定时间的事件(或者,直到满足条件)。然后,在窗口中收集的这一系列事件中,您可以根据条件选择最大值,然后打印出来。

您可以参考Espertech文档,了解此herehere

相关问题