GROUP_CONCAT(expr)
语法
该函数支持对同一分组内聚集列字符串进行连接,其完整的语法如下所示:
GROUP_CONCAT ( [distinct]
expr
[order by …[asc/desc]]
[topN xxxx]
[separator 'xxxx']
)
表5- 30 参数说明
参数名称
描
述
distinct
去除同一分组内聚集列的重复值,可选。默认值:保留重复
值。
expr
聚集列:基于列的表达式,支持多种类型。必选。
[
order
by …[asc/desc] ]
对于同一分组内聚集列的值会按照排序列的排列顺序输出。
可选,支持多列排序列表,可指定排序列的升降序。
默认值:不输入排序列表,则按聚集列的字符串排序规则升
序排序。
GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
865
参数名称
描
述
[topN xxxx]
表示同一分组内最多输出聚集列的行值个数,可选。
默认值:不输入topN 值,则输出同一分组内的聚集列所有
行值。
限制值:topN 表示一行中连接字符串的最多个数,topN 决定
了后续引擎计算分配的内存大小等相关信息,
不宜设置过大。
所以这里在解析时对其进行了限制,当一个元素只有一个字
符的极限时,使topN 不超过group_concat_max_len(单位为字
节,默认值为1024)环境变量指定的长度。952 的默认字符集
是utf8mb4(4 字节),862 的默认字符集时utf8(3 字节)
group_concat_max_len 是最长字节数。
topN 为0 时,即group_concat(colname, topN 0)表示
不对任何行做聚集,group_concat 函数的值为null。
[separator 'xxxx']
同一分组内聚集列的行值之间分隔符。可选。
默认值:不输入分隔符,则默认分隔符为半角逗号。
限制值:无限制长度,但是GROUP_CONCAT 输出结果超过
group_concat_max_len 会报错。
注意
distinct 参数和order by 互斥。
topN 为0 时,即group_concat(colname, topN 0),不对任何行
做聚集,group_concat 函数的值为null。
无topN 时,即group_concat(colname)时,对聚集行不限制。
952 的默认字符集是utf8mb4(4 字节),862 的默认字符集时
utf8(3 字节)。group_concat_max_len 是最长字节数。
group_concat 中不支持blob 类型参数。