[英]Esper - concatenate values from multiple rows to a list
我有一個Esper查詢,該查詢返回多行,但我想改為獲得一行,其中該行具有一個列表(或串聯字符串),該列表包含來自當前匹配行的(對應列)的所有值查詢返回。
例如:
SELECT Name, avg(latency) as avgLatency
FROM MyStream.win:time(5 min)
GROUP BY Name
HAVING avgLatency / 1000 > 60
OUTPUT last every 5 min
返回:
Name avgLatency
---- ----------
A 65
B 70
C 75
我真正想要的是:
Name
----
{A, B, C}
是否可以通過查詢本身來完成? 我試圖使用子查詢來完成這項工作,但是我沒有使用多個流。 我在Esper文檔中找不到適合我嘗試執行的任何聚合函數或枚舉函數。
感謝任何對我有任何見解或指導的人。
編輯:如果無法通過查詢完成此操作,則我願意更改訂戶或其他任何必要的內容。
您可以讓訂閱者或監聽者進行連接。 訂戶有一個“多行傳遞”。 或使用如下表格。
// create table to hold aggregation result
create table LatencyTable(name string primary key, avgLatency avg(double));
// update aggregations in table from events coming in
into LatencyTable select name, avg(latency) as avgLatency from MyStream#time(5 min) group by name;
// do a select with the "aggregate" enumeration method
select (select * from LatencyTable where avgLatency > x).aggregate(....) from pattern[every timer:interval(5 min)]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.