如何聚合 Postgres 数组中多条记录的所有数组值?

Man*_*rer 2 arrays postgresql

我有一个充满记录的表和一个数组列,现在我想获得该列中所有(唯一)值的列表。获得它的最佳方法是什么?

我试图玩弄unnestarray_aggstring_agg却没有取得任何进展......

(使用 Postgres 9.2)

Clo*_*eto 6

select distinct unnest(a)
from (values
    (array[1, 2]),
    (array[2, 3])
) s(a);
 unnest 
--------
      3
      1
      2
Run Code Online (Sandbox Code Playgroud)

或者聚合在一个数组中:

select array_agg(a order by a)
from (
    select distinct unnest(a) as a
    from (values
        (array[1, 2]),
        (array[2, 3])
    ) s(a)
) s;
 array_agg 
-----------
 {1,2,3}
Run Code Online (Sandbox Code Playgroud)