将一列拆分为多个sql

时间:2019-10-13 18:18:22

标签: sql clickhouse

我有这张桌子:

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用作数据库,有什么想法,谢谢

1 个答案:

答案 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