簡體   English   中英

Esper-將多行中的值連接到列表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM