我们说我有一个整数数组
1 6 6 3 3 8 4 4
它始终采用n*(pairs of number) + 2 (unique numbers)
形式。
是否有一种有效的方法只保留2个唯一值(即单个出现的2个)?
在这里,我想获得1和8。
到目前为止我所拥有的是:
SELECT node_id
FROM
( SELECT node_id, COUNT(*)
FROM unnest(array[1, 6, 6 , 3, 3 , 8 , 4 ,4]) AS node_id
GROUP BY node_id
) foo
ORDER BY count LIMIT 2;
答案 0 :(得分:3)
我非常接近,我想:
SELECT node_id
FROM (SELECT node_id, COUNT(*)
FROM unnest(array[1, 6, 6 , 3, 3 , 8 , 4 ,4]) AS node_id
GROUP BY node_id
HAVING count(*) = 1
) foo ;
如果您愿意,可以使用array_agg()
将这些组合回一个数组。