【案例卡】clickhouse:多行数据拼接在一行

一、需求

针对clickhouse数据库中,group by 分组后的字符串字段,拼接处理在一行的问题实现。在mysql中,可以用group_concat()函数来实现,而clickhouse数据库不支持此函数,特此记录实现方式。

二、clickhouse相关函数介绍

1.groupArray:聚合为数组

groupArray 是 ClickHouse 提供的一种聚合函数,用于在 GROUP BY查询中将行组的某个列的值组合成一个数组。groupArray 函数在分析数据时非常有用,它可以将行组中的数据合并成数组形式,方便后续的处理和分析。

2.arrayStringConcat:将数组中的字符串元素连接成一个字符串

arrayStringConcat 函数的语法如下:

sql 复制代码
arrayStringConcat(arr, separator)

其中:

arr:要连接的数组。

separator:连接数组元素的分隔符字符串。

三、案例

以下列数据为例,我们要汇总统一年份,有哪些月份上报了数据,并且存储在一行中,就可以用上述函数来实现。

单纯使用groupArray()样例:

上述两个函数结合实现结果:

相关推荐
mit6.8248 分钟前
[C# starter-kit] Domain Entities | `AuditableEntity`基类 | 跟踪变化 | 软删除
数据库·microsoft·c#
潇凝子潇17 分钟前
MySQL Redo Log 和 Undo Log 满了会有什么问题
数据库·mysql
周杰伦_Jay2 小时前
【Homebrew安装 MySQL 】macOS 用 Homebrew 安装 MySQL 完整教程
数据库·mysql·macos
悟能不能悟8 小时前
redis的红锁
数据库·redis·缓存
安当加密10 小时前
MySQL数据库透明加密(TDE)解决方案:基于国密SM4的合规与性能优化实践
数据库·mysql·性能优化
JH307310 小时前
第七篇:Buffer Pool 与 InnoDB 其他组件的协作
java·数据库·mysql·oracle
板凳坐着晒太阳10 小时前
ClickHouse 配置优化与问题解决
数据库·clickhouse
数据库生产实战10 小时前
解析Oracle 19C中并行INSERT SELECT的工作原理
数据库·oracle
AAA修煤气灶刘哥11 小时前
服务器指标多到“洪水泛滥”?试试InfluxDB?
数据库·后端·面试
阿沁QWQ12 小时前
MySQL服务器配置与管理
服务器·数据库·mysql