groupArray
Introduit dans : v1.1.0
Crée un tableau de valeurs d'argument. Les valeurs peuvent être ajoutées au tableau dans un ordre quelconque (indéterminé).
La deuxième version (avec le paramètre max_size) limite la taille du tableau résultant à max_size éléments. Par exemple, groupArray(1)(x) est équivalent à [any(x)].
Dans certains cas, vous pouvez néanmoins vous fier à l'ordre d'exécution. Cela s'applique lorsque SELECT provient d'une sous-requête qui utilise ORDER BY, si le résultat de la sous-requête est suffisamment petit.
La fonction groupArray supprime les valeurs NULL du résultat.
Syntaxe
groupArray(x)
groupArray(max_size)(x)Alias : array_agg
Paramètres
max_size— Facultatif. Limite la taille du tableau résultant àmax_sizeéléments.UInt64
Arguments
x— Valeurs d’argument à regrouper dans un tableau.Any
Valeur renvoyée
Renvoie un tableau contenant les valeurs d’argument. Array
Exemples
Utilisation de base
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'] │
└────┴──────────────────────┘