sql - 按clickhouse中两个数组的元素联合
问题描述
我有以下两列(浮动:
+-------------+-------------+
|col1 |col2 |
+-------------+-------------+
|[0.5,0.6] |[900,1000] |
|[0.7,0.8,0.9]|[1100,1200,1300]|
+-------------+-------------+
我想要以下输出:
+-------------+------------- +----------------------------+
|col1 |col2 |col3 |
+-------------+------------- +----------------------------+
|[0.5,0.6] |[900,1000] |[0.5 900 , 0.6 1000] |
|[0.7,0.8,0.9]|[1100,1200,1300]|[0.7 1100,0.8 1200,0.9 1300]|
+-------------+----------- ----+----------------------------+
我尝试过 ArrayZip,但出现异常“无法从 JDBC 数组中提取数组数据”
谢谢您的帮助。
解决方案
JDBC驱动不支持Array(Tuple(String)等复杂数据类型,可以在CH中转换成字符串。
SELECT
[0.5, 0.6] AS col1,
[900, 1000] AS col2,
arrayMap((i, j) -> concat(toString(i), ' ', toString(j)), col1, col2) AS r
┌─col1──────┬─col2───────┬─r──────────────────────┐
│ [0.5,0.6] │ [900,1000] │ ['0.5 900','0.6 1000'] │
└───────────┴────────────┴────────────────────────┘
SELECT
[0.5, 0.6] AS col1,
[900, 1000] AS col2,
toString(arrayMap((i, j) -> concat(toString(i), ' ', toString(j)), col1, col2)) AS r
┌─col1──────┬─col2───────┬─r──────────────────────┐
│ [0.5,0.6] │ [900,1000] │ ['0.5 900','0.6 1000'] │
└───────────┴────────────┴────────────────────────┘
SELECT
[0.5, 0.6] AS col1,
[900, 1000] AS col2,
concat('[', arrayStringConcat(arrayMap((i, j) -> concat(toString(i), ' ', toString(j)), col1, col2), ', '), ']') AS r
┌─col1──────┬─col2───────┬─r───────────────────┐
│ [0.5,0.6] │ [900,1000] │ [0.5 900, 0.6 1000] │
└───────────┴────────────┴─────────────────────┘
SELECT
[0.5, 0.6] AS col1,
[900, 1000] AS col2,
arrayZip(col1, col2)
Query id: 8a7aa26b-71f7-4544-b5c7-79e47f1c6453
┌─col1──────┬─col2───────┬─arrayZip([0.5, 0.6], [900, 1000])─┐
│ [0.5,0.6] │ [900,1000] │ [(0.5,900),(0.6,1000)] │
└───────────┴────────────┴───────────────────────────────────┘
SELECT
[0.5, 0.6] AS col1,
[900, 1000] AS col2,
toString(arrayZip(col1, col2))
┌─col1──────┬─col2───────┬─toString(arrayZip([0.5, 0.6], [900, 1000]))─┐
│ [0.5,0.6] │ [900,1000] │ [(0.5,900),(0.6,1000)] │
└───────────┴────────────┴─────────────────────────────────────────────┘
推荐阅读
- html - 为什么ios14以下无法加载网站图片?
- python - 我可以在过滤 numpy 数组方面做得更好吗
- android - 从广播接收器更改 Activity 中的 TextView
- spring - 配置服务器配置无效
- wordpress - 防止从模板中删除块
- java - Spring 集成 CompositeFileListFilter
- mysql - mysql中的先前记录具有重复记录和随机ID
- python - 在使用大量虚拟环境时应该如何安装软件包?
- wordpress - cURL 错误 60 Wordpress 在 localhost 上运行
- qt - QMake:将文件和文件夹从源目录复制到构建目录