是否有可能在Clickhouse中获得每行的汇总结果?

时间:2018-04-16 09:19:09

标签: clickhouse

我正在尝试编写一个查询来获取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中有一个函数可以实现这样的功能,或者在得到结果集之后我还需要在代码中做些什么?

1 个答案:

答案 0 :(得分:0)

ClickHouse当前不支持相关子查询。

尽管您可以尝试以下操作:使用ARRAY JOINrange爆炸事件表60次,以产生time - N的新列,这意味着该行属于{ {1}}瞬间,然后time使用该列返回。