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;