我试图实现一个EPL查询可以拿起为平均时间(T)和时间(T-1)。

  

例如:

     
    前5秒(秒0-5)有2个事件具有12的平均

一)          

B)在接下来的5秒(秒5-10)有3个事件与23之间的一个平均,和在EPL查询捕获这些信息,我能够又见12的平均从前次的前5秒窗口

  

的想法我是错开的对象/查询以这样的方式,最终的EPL查询具有时间(T)和时间的快照(T-1),如见于几乎创建的对象ScoreInfoBeforeAfter。但是它不工作。

任何想法将不胜感激。感谢。

~~~~

// The object being published to the Esper stream:
class ScoreEvent { int score; ... }
有帮助吗?

解决方案

看起来像关键字的现有是该溶液中。

HTTP://esper.codehaus。组织/艾斯波-2.1.0 / DOC /参考/ EN / HTML / functionreference.html

请参阅:栏目7.1.9

在我在原来的职位描述的示例而言,这里的相应溶液,我发现。这似乎是正常工作。

INSERT INTO ScoreInfo
SELECT 
    'ScoreInfo' as a_Label, 
    average AS curAvg, 
    prior(1, average) AS prevAvg 
FROM 
    ScoreEvent.win:time_batch(5 sec).stat:uni(score);


SELECT
*
FROM
ScoreInfo.win:length(1);

..结果 然后,这是不错的,因为你可以做的东西是这样的:

SELECT
    'GT curAvg > prevAvg' as a_Label, 
    curAvg, 
    prevAvg 
FROM
    ScoreInfo.win:length(1)
WHERE
    curAvg > prevAvg;


SELECT
    'LTE curAvg <= prevAvg' as a_Label, 
    curAvg, 
    prevAvg 
FROM
    ScoreInfo.win:length(1)
WHERE
    curAvg <= prevAvg;
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top