【问题标题】:Is it possible to get an aggregated result per row in Clickhouse?是否可以在 Clickhouse 中获得每行的聚合结果?
【发布时间】:2018-09-25 23:33:05
【问题描述】:

我正在尝试编写一个查询来获取 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 中有一个函数可以实现这样的功能,或者在我们获得结果集后我必须在代码中执行此操作吗?

【问题讨论】:

    标签: clickhouse


    【解决方案1】:

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

    尽管您可以尝试以下操作:使用 ARRAY JOINrange 将事件表分解 60 次以生成带有 time - N 的新列,这意味着该行属于 time 时刻的桶,然后是 @ 987654325@ 使用该列返回。

    【讨论】:

      猜你喜欢
      • 2012-08-31
      • 1970-01-01
      • 2014-09-08
      • 1970-01-01
      • 1970-01-01
      • 2022-10-04
      • 2023-03-12
      • 2020-10-13
      • 1970-01-01
      相关资源
      最近更新 更多