groupArray
Introducido en: v1.1.0
Crea un array de valores del argumento. Los valores pueden añadirse al array en cualquier orden (indeterminado).
La segunda versión (con el parámetro max_size) limita el tamaño del array resultante a max_size elementos. Por ejemplo, groupArray(1)(x) es equivalente a [any(x)].
En algunos casos, se puede seguir confiando en el orden de ejecución. Esto se aplica a los casos en que SELECT proviene de una subconsulta que usa ORDER BY, si el resultado de la subconsulta es lo suficientemente pequeño.
La función groupArray elimina los valores NULL del resultado.
Sintaxis
groupArray(x)
groupArray(max_size)(x)Alias: array_agg
Parámetros
max_size— Opcional. Limita el tamaño del array resultante amax_sizeelementos.UInt64
Argumentos
x— Valores del argumento que se recopilan en un array.Any
Valor devuelto
Devuelve un array con los valores del argumento. Array
Ejemplos
Uso básico
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'] │
└────┴──────────────────────┘