【案例卡】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()样例:

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

相关推荐
计算机毕设VX:Fegn08954 分钟前
计算机毕业设计|基于springboot + vue汽车销售系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·汽车·课程设计
@小白向前冲18 分钟前
数据库创表(方便自己查看)
数据库·mysql
散一世繁华,颠半世琉璃19 分钟前
高并发下的 Redis 优化:如何利用HeavyKeeper快速定位热 key
数据库·redis·缓存
咸鱼加辣29 分钟前
【前端的crud】DOM 就是前端里的“数据库”
前端·数据库
Lin_Miao_0933 分钟前
基于 DataX + DataX-Web 生成报表数据
java·数据库
一位代码34 分钟前
mysql | 复制表结构和数据
数据库·mysql
IndulgeCui34 分钟前
记一次mysql迁移至OceanBase操作记录
数据库·mysql·oceanbase
悟能不能悟39 分钟前
mybatis sql where a=#{a},如果a为null,会返回什么
数据库·sql·mybatis
l1t43 分钟前
豆包解读论文:将具有分支和循环控制流的命令式程序转换为标准SQL1999的公共表表达式
开发语言·数据库·人工智能·python·sql·postgresql·duckdb
云边有个稻草人1 小时前
【MySQL】第五节—一文详解 | 表的约束(上)
数据库·mysql·default·表的约束·zerofill·主键约束