wso2 CEP ::聚合函数"选择"条款错误

时间:2016-03-03 04:30:09

标签: wso2 complex-event-processing

我试图在wso2的CEP中编写执行计划。但是如果我使用聚合函数,我会在select子句中收到错误。就我而言,它是"总和"。请阅读以下内容以获取更多详细信息:

@Export('stream.sla.consolidated.breach:1.0.0')
define stream ConsolidatedBreachSLA (breach_date string, breach_count_per_day int,request_id int);

@Export('stream.sla.breach.details:1.0.0')
define stream BreachSLA (request_id int, breach_date string, breach_flag int);

from BreachSLA#window.length(50)
select breach_date as breach_date,sum(breach_flag) as breach_count_per_day,request_id
group by breach_date
having breach_count_per_day > 2
insert into ConsolidatedBreachSLA;

CEP Error

但是一旦我删除"总和"从select子句看,一切似乎都得到了正确的验证。

from BreachSLA#window.length(50)
select breach_date as breach_date,breach_flag as breach_count_per_day,request_id
group by breach_date
having sum(breach_count_per_day) > 2
insert into ConsolidatedBreachSLA;

目的是获取select子句中的记录总和,以便将总和的值导出到发布者。

2 个答案:

答案 0 :(得分:1)

sum function returns a long value(对于int或long输入),而您的属性' breach_flag'被定义为int。似乎流已经为此定义了一个int属性,因此发生了这种冲突,您需要修改已定义的流(ConsolidatedBreachSLA和任何后续流)属性类型(即breach_count_per_day的类型)到'长'得到这笔钱。

答案 1 :(得分:1)

拉杰夫对冲突是正确的。

我正在尝试与此问题不同的事情,我尝试了"转换"功能,它帮助。

所以我将我的Siddhi查询改为

来自BreachSLA#window.length(50) 选择breach_date,转换(sum(breach_flag),' int')作为breach_count_per_day 由breach_date组成 有breach_count_per_day> 2 插入BreachCountDay;

相关问题