关于topk
聚合的问题。我有一个事件流,每个事件都有三个字段id,accountid,priority。我正在尝试一个视图,其中包含按ID分组的ID列表,按帐户ID排在前5位,实际上,我提出了给出前5个优先事件的查询
select topk(priority, 5), accountId
from events_stream
group by accountId
emit changes;
但是我无法关联该事件的相应ID。样本事件:
{
"ROWTIME": 1588619792693,
"ROWKEY": "99a5e4ac-a4be-4aa4-8222-3e95a4811994",
"TIMESTAMP": 1588619792691,
"ID": "99a5e4ac-a4be-4aa4-8222-3e95a4811994",
"PRIORITY": 262,
"ACCOUNTID": "345"
}
是否可以将ids
的优先级设为topk
?
我想为每个帐户设置前5个高优先级事件。
以下查询应该可以解决问题:
SELECT accountId, id, TOPK(priority, 5) \
FROM events_stream \
GROUP BY accountId;