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

时间:2013-07-15 13:22:09

标签: arrays postgresql

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

我尝试使用unnestarray_aggstring_agg,但没有到达任何地方......

(使用Postgres 9.2)

1 个答案:

答案 0 :(得分:3)

select distinct unnest(a)
from (values
    (array[1, 2]),
    (array[2, 3])
) s(a);
 unnest 
--------
      3
      1
      2

或聚合在一个数组中:

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}