我正在尝试编写一个查询来获取Clickhouse中结果集的每一行的聚合度量。我的想法是,对于每个匹配分组ID的行,我想在当前行之后的60秒内选择一个时间窗口并得到一些值列的总和,但到目前为止,我一直无法找出要实现的查询这个。下面是我尝试使用连接但我收到错误的示例。我认为这是因为无法从外部查询访问子查询列:
select time, groupID, value, summed.addedValue from Events where groupID = 1234 as current
any inner join
select groupID, sum(value) as addedValue from Events
where
groupID = 1234 and
time < (current.time + 60) and time > current.time
group by groupID
as summed
我想知道这种查询是否可以实现?它本质上是一个滑动60秒的窗口来获得求和值,但我希望它覆盖每个可能的60秒窗口,这就是为什么我想为每一行计算它。也许在Clickhouse中有一个函数可以实现这样的功能,或者在得到结果集之后我还需要在代码中做些什么?
答案 0 :(得分:0)
ClickHouse当前不支持相关子查询。
尽管您可以尝试以下操作:使用ARRAY JOIN和range爆炸事件表60次,以产生time - N
的新列,这意味着该行属于{ {1}}瞬间,然后time
使用该列返回。