我有一个整数数组作为列。
有没有办法查询重叠整数的数量?
例如,对于以下 3 条记录:
COLUMN1
{1,3,7}
{3,4,5}
{1,2}
如何使用 ARRAY[3,4,8] 获取重叠元素的数量?
我的示例的结果应该是:
1 (element 3)
2 (element 3 and 4)
0 (none)
我发现
SELECT COLUMN1 && ARRAY[44,45,46] FROM table1
但这返回真或假。
如果您安装了 intarray 扩展,则可以使用该扩展中的 "intersection" 运算符:
select column1, column1 & ARRAY[3,4,8] as elements
from table1
返回:
column1 | elements
--------+---------
{1,3,8} | {3,8}
{3,4,5} | {3,4}
{1,2} | {}
若要获取结果数组中元素的数量,请使用cardinality(column1 & ARRAY[3,4,8])