将一栏分成几栏 sql

Split one column into several sql

我有这个table:

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' 中有四个指标针对每个用户具有不同的值。一个用户的每个指标的时间都相同。

我想知道,如何将 'Path' 拆分为另外四列,如下所示:

Path    metric1 metric2 metric3 metric4 Time
name1      v1     v2      v3      v4      t1
name2      v5     v6      v7      v8      t2

我使用 Clickhouse 作为数据库,有什么想法,谢谢

我对 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