ARRAY_AGG 函数
在 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 数据类型。
热门帖子
- 12025-12-01浏览数:182763
- 22023-05-09浏览数:25057
- 42023-09-25浏览数:18525
- 52020-05-11浏览数:17528