gpt4 book ai didi

java - 如何从 Esper EPL 中的查询中检索多列并对其进行分组?

转载 作者:行者123 更新时间:2023-12-01 10:15:32 29 4
gpt4 key购买 nike

我正在编写一个查询来获取 inputStream 标题字段的第一个字符,并计算返回的字符类型。

这两个查询分别起作用,并给出结果的计数和子字符串后的字符数。

"select count(*) as count as character from Data.win:time_batch(5 sec) ";

"select title.substring(0,1) as character from Data.win:time_batch(5 sec) ";

但是当我将它们组合起来并按字符分组时,出现分组错误。

public String getStatement() {

return "select count(*) as count, title.substring(0,1) as character from
Data.win:time_batch(5 sec) group by character";
}

/**
* Listener method called when Esper has detected a pattern match.
*/
public void update(Map<String, String> eventMap) {
System.out.println(eventMap);
// Titles in the last 5 seconds
String character = (String) eventMap.get("character");
String count = (String) eventMap.get("count");
StringBuilder sb = new StringBuilder();
sb.append("---------------------------------");
sb.append("\n- [MONITOR] Char = " + character + " Count =" + count);
sb.append("\n---------------------------------");

LOG.debug(sb.toString());
}

任何人都可以建议如何对 select 语句中的两个字段进行分组和返回。

最佳答案

EPL 中的 select-clause 不会全局命名表达式。

为了在 EPL 内或全局共享命名表达式,Esper 有表达式(请参阅 5.2.9)作为示例。

另一种选择是:

insert into Character select title.substring(0,1) as character from Data

select count(*) as count, character from Character.win:time_batch(5 sec) group by character

关于java - 如何从 Esper EPL 中的查询中检索多列并对其进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35923123/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com