clickhouse分组后对max()值相同的记录做二次合并

2024-06-02  本文已影响0人  清蒸三文鱼_

背景

想用一条sql来查询某个设备指标的最新时间点的值, 但是最新时间点的值会有多条, 即在2024-06-01 10:00:00会存在多条不同value值的记录, 需要进行合并为数据, 原本以为argMax(value,clock)可以满足条件, 但是clickhouse不支持聚合函数多重聚合, 所以选用了下面的方式

SELECT cmdbId, metricCode, groupArray(value) as aggValue
FROM metric_2d
WHERE (cmdbId, metricCode, clock) IN (
    SELECT cmdbId, metricCode, max(clock)
    FROM metric_2d
    GROUP BY cmdbId, metricCode
)
GROUP BY cmdbId, metricCode;
上一篇下一篇

猜你喜欢

热点阅读