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

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

相关推荐
island13141 小时前
【QT】 控件 -- 显示类
开发语言·数据库·qt
Andya_net2 小时前
网络安全 | F5-Attack Signatures-Set详解
网络·数据库·web安全
码农幻想梦2 小时前
实验二 数据库的附加/分离、导入/导出与备份/还原
数据库·oracle
hillstream33 小时前
Synology 群辉NAS安装(6)安装mssql
数据库·sqlserver
行十万里人生4 小时前
Qt 控件与布局管理
数据库·qt·microsoft·华为od·华为·华为云·harmonyos
betazhou4 小时前
sysbench压力测试工具mysql以及postgresql
数据库·mysql·postgresql
莳花微语4 小时前
OGG 19C 集成模式启用DDL复制
数据库·oracle
潜水的码不二4 小时前
Redis高阶3-缓存双写一致性
数据库·redis·缓存
落霞的思绪4 小时前
Redis实战(黑马点评)——关于缓存(缓存更新策略、缓存穿透、缓存雪崩、缓存击穿、Redis工具)
数据库·spring boot·redis·后端·缓存
老苏畅谈运维7 小时前
MySQL性能分析的“秘密武器”,深度剖析SQL问题
数据库·sql·mysql