可能重复:
PostGreSQL 中多个数组的交集
我正在尝试识别 Pg 9.2 数据库中多个 (>2) 数组中的公共元素。数据结构如下:
ID 标题数组
1 title1 {a,b,c,d,...}
2 title2 {z,y,a,d,...}
3 title3 {d,a,p,q,...}
n 。 …………
从上面的示例中,SELECT 应该返回 {a,d} 作为每个数组的公共元素。
我已经将这用于 2 个数组作为测试用例,使用:
...
select array_agg(e)
from (
select unnest(arr1) from cte_1
intersect
select unnest(arr2) from cte_2
) as dt(e)),
...
但是无法使其与 RECURSIVE CTE 一起正常工作。在网上和各种 Joe Celko 书籍/片段中找到了一些有用的示例。
我能想到的最好的就是这篇使用自定义函数的帖子:
但似乎应该有一种方法可以通过 RECURSIVE 或其他技术来实现这一点。
有任何想法吗?
提前致谢。