返回结果集中的数组的公共元素 - PostgreSQL

时间:2017-06-29 14:47:52

标签: postgresql

我有表foo(id INTEGER,值VARCHAR []):

Id / Values
1  / A,B,C
2  / A,C

我想编写一个查询,它只返回所有记录中通用值数组中的元素。

所以对于上面我想得到A,C

任何想法?谢谢!

1 个答案:

答案 0 :(得分:1)

with t (id, values) as ( values
    (1, '{A,B,C}'::varchar[]),
    (2, '{A,C}')
)
select v
from
    t
    cross join lateral
    unnest(values) v(v)
group by v
having count(*) = (select count(*) from t)
;
 v 
---
 C
 A