标签: arrays postgresql
我有一个整数数组作为列。
有没有办法查询重叠整数的数量?
例如,对于以下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
但这会返回真或假。
答案 0 :(得分:1)
如果您install 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])
cardinality(column1 & ARRAY[3,4,8])