ClickHouse 元组到列

Posted

技术标签:

【中文标题】ClickHouse 元组到列【英文标题】:ClickHouse Tuple to columns 【发布时间】:2019-10-15 12:15:07 【问题描述】:

是否可以在 ClickHouse 中将元组转换为列?

SELECT tuple(1,'a')给了

  | tuple(1,'a') |
–-|--------------|
0 | (1,'a')      |

如何将其转化为两列的结果?

  | 0 | 1   |
–-|---------|
0 | 1 | 'a' |

【问题讨论】:

【参考方案1】:

(1, 'a').1 .tuple_element_index 或函数 tupleElement

SELECT
    (1, 'a').1,
    (1, 'a').2

/*
┌─tupleElement(tuple(1, 'a'), 1)─┬─tupleElement(tuple(1, 'a'), 2)─┐
│                              1 │ a                              │
└────────────────────────────────┴────────────────────────────────┘
*/

【讨论】:

所以没有办法自动展开?考虑到所有元组都有相同数量的元素。 在现代 CH 中可以使用 untuple 来完成。 SELECT untuple((1, 'a')) 知道如何在使用utuple((val * 8 / 300)) 时将列名设为数字而不是divide(multiply(val, 8), 300)

以上是关于ClickHouse 元组到列的主要内容,如果未能解决你的问题,请参考以下文章

clickhouse计算引擎

ClickHouse 实战:ClickHouse 高级数据类型极简教程

《ClickHouse企业级应用:入门进阶与实战》4 ClickHouse高级数据类型

客快物流大数据项目(八十九):ClickHouse的数据类型支持

类型元组到实例元组

ClickHouse(02)ClickHouse架构设计介绍概述与ClickHouse数据分片设计