groupArray
引入版本:v1.1.0
创建一个由参数值组成的数组。 这些值可以按任意 (不确定的) 顺序添加到数组中。
第二个版本 (带有 max_size 参数) 会将结果数组的大小限制为 max_size 个元素。例如,groupArray(1)(x) 等同于 [any(x)]。
在某些情况下,你仍然可以依赖执行顺序。这适用于 SELECT 来自使用 ORDER BY 的子查询,且子查询结果足够小的情况。
groupArray 函数会从结果中移除 NULL 值。
语法
groupArray(x)
groupArray(max_size)(x)别名: array_agg
参数
max_size— 可选。将结果数组的大小限制为max_size个元素。UInt64
参数说明
x— 要收集到数组中的参数值。Any
返回值
返回由参数值组成的数组。Array
示例
基本用法
CREATE TABLE ck (id UInt8, name String) ENGINE = Memory;
INSERT INTO ck VALUES (1, 'zhangsan'), (1, 'lisi'), (2, 'wangwu');
SELECT id, groupArray(10)(name) FROM ck GROUP BY id ORDER BY id;┌─id─┬─groupArray(10)(name)─┐
│ 1 │ ['zhangsan','lisi'] │
│ 2 │ ['wangwu'] │
└────┴──────────────────────┘