GBase 8a
其他
文章

ARRAY_AGG 函数

发表于2025-12-29 13:47:0561次浏览1个评论

在 GBase 8a 数据库中,  ARRAY_AGG   是一个聚合函数,它的功能与   GROUP_CONCAT   类似,用于将分组内的多个字符串值连接成一个字符串。
核心语法
ARRAY_AGG(expression [SEPARATOR delimiter]) WITHIN (ORDER BY col_name [ASC/DESC])
参数说明| 参数部分 | 说明 | 
|   expression   | 需要聚合的字符串表达式,通常是列名。 | 
|   SEPARATOR delimiter   | 可选参数。用于指定连接值之间的分隔符。  SEPARATOR   是关键字,  delimiter   是具体的分隔字符串。如果省略,默认使用逗号(  ,  )作为分隔符。 | 
|   WITHIN (ORDER BY ...)   | 可选参数。用于指定聚合时值的排序方式,以控制连接后字符串的顺序。 |

使用示例
假设有表   t1  ,包含   id   和   name   两列。以下查询将每个   id   分组下的   name   用 "++" 连接起来,并按照   id   排序:
SELECT id, ARRAY_AGG(name SEPARATOR '++') WITHIN (ORDER BY id) AS concatenated_names 
FROM t1 
GROUP BY id;
重要注意事项
长度限制:该函数理论上对数据类型没有限制,但受系统参数   group_concat_max_len   的控制,其默认值为 1024。如果连接后的字符串可能超过此长度,需要预先调整该参数。
SET GLOBAL group_concat_max_len = 10240;
数据类型支持:该函数暂不支持   BLOB   和   LONGBLOB   数据类型。

评论

登录后才可以发表评论
曾云林发表于 2个月前
厉害了