我有这张桌子:
Path Value Time
name1.metric1 v1 t1
name1.metric2 v2 t1
name1.metric3 v3 t1
name1.metric4 v4 t1
name2.metric1 v5 t2
name2.metric2 v6 t2
name2.metric3 v7 t2
name2.metric4 v8 t2
每个用户的“路径”中有四个度量值不同。每个用户的每个指标的时间都是相同的。
我想知道如何将“路径”分成另外四列,例如:
Path metric1 metric2 metric3 metric4 Time
name1 v1 v2 v3 v4 t1
name2 v5 v6 v7 v8 t2
我将Clickhouse用作数据库,有什么想法,谢谢
答案 0 :(得分:0)
我对Clickhouse并不十分熟悉。基本上,您需要条件聚合以及对path
的一些字符串操作。
类似这样的东西:
select splitbychar(path, '.')[1] as name, time,
max(case when path like '%.metric1' then value end) as value1,
max(case when path like '%.metric2' then value end) as value2,
max(case when path like '%.metric3' then value end) as value3,
max(case when path like '%.metric4' then value end) as value4
from t
group by splitbychar(path, '.')[1], time