Объедините два массива объекта из двух разных столбцов, чтобы создать новый массив уникальных и ненулевых объектов в postgresql - PullRequest
0 голосов
/ 31 мая 2018

У меня есть результирующий набор, который возвращает 3 столбца, из которых один - varchar, а два - массив, теперь мне нужно объединить столбец массива, чтобы создать новый массив с непустыми уникальными элементами.Я пробовал разные варианты, но они не работают. Есть предложения?

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

Спасибо за предложения, ребята.Я обнаружил, что решение array_cat работает для меня.

0 голосов
/ 31 мая 2018

Вы можете объединить массивы и unnest в строки.Затем вы можете использовать distinct, чтобы получить уникальные строки, и array_agg, чтобы объединить их обратно в массив:

select  id
,       array_agg(nr)
from    (
        select  distinct id
        ,       unnest(array[col1] || col2 || col3) nr
        from    t1
        ) sub
group by
        id

Пример в SQL Fiddle.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...