J'ai une table clickhouse dont l'une des colonnes est Array (T).
Quand je cours
SELECT array_field FROM ma_table
J'obtiens ce qui suit:
{a, b, c, d, e}
Je dois trouver un moyen d'obtenir une liste de valeurs uniques dans toutes ces listes, comme ça:
1 | {a, b, c} -------------- 2 | {a, b} -------------- 3 | {d, e}
3 Réponses :
J'ai trouvé une solution qui fonctionne pour moi:
SELECT DISTINCT arrayJoin(array_field) FROM my_table
Pour obtenir la même chose dans un tableau sur une ligne: utilisez groupUniqArray
avec le combinateur -Array
. Consultez la documentation
SELECT * FROM my_table ââarray_fieldââââ â ['a','b','c'] â â ['a','b'] â â ['d','e'] â âââââââââââââââââ 3 rows in set. Elapsed: 0.001 sec. SELECT DISTINCT arrayJoin(array_field) FROM my_table ââarrayJoin(array_field)ââ â a â â b â â c â â d â â e â ââââââââââââââââââââââââââ SELECT groupUniqArrayArray(array_field) FROM my_table ââgroupUniqArrayArray(array_field)ââ â ['c','e','d','a','b'] â ââââââââââââââââââââââââââââââââââââ
Une autre solution à votre problème
SELECT arrayDistinct(arrayFlatten(groupArray(array_field))) FROM my_table