groupArray
Introduzido em: v1.1.0
Cria um array de valores de argumentos. Os valores podem ser adicionados ao array em qualquer ordem (indeterminada).
A segunda versão (com o parâmetro max_size) limita o tamanho do array resultante a max_size elementos. Por exemplo, groupArray(1)(x) é equivalente a [any(x)].
Em alguns casos, ainda é possível contar com a ordem de execução. Isso se aplica quando o SELECT vem de uma subconsulta que usa ORDER BY, se o resultado da subconsulta for pequeno o suficiente.
A função groupArray remove os valores NULL do resultado.
Sintaxe
groupArray(x)
groupArray(max_size)(x)Aliases: array_agg
Parâmetros
max_size— Opcional. Limita o tamanho do array resultante amax_sizeelementos.UInt64
Argumentos
x— Valores do argumento a serem coletados em um array.Any
Valor retornado
Retorna um array de valores de argumentos. Array
Exemplos
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'] │
└────┴──────────────────────┘