groupArray
Introduced in: v1.1.0
Creates an array of argument values. Values can be added to the array in any (indeterminate) order.
The second version (with the max_size parameter) limits the size of the resulting array to max_size elements. For example, groupArray(1)(x) is equivalent to [any(x)].
In some cases, you can still rely on the order of execution. This applies to cases when SELECT comes from a subquery that uses ORDER BY if the subquery result is small enough.
The groupArray function will remove NULL values from the result.
Syntax
groupArray(x)
groupArray(max_size)(x)Aliases: array_agg
Parameters
max_size— Optional. Limits the size of the resulting array tomax_sizeelements.UInt64
Arguments
x— Argument values to collect into an array.Any
Returned value
Returns an array of argument values. Array
Examples
Basic usage
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'] │
└────┴──────────────────────┘