一、需求
针对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()样例:
上述两个函数结合实现结果: