Postgresql:只保留整数数组中的唯一值

时间:2015-08-07 12:17:40

标签: postgresql unique find-occurrences

我们说我有一个整数数组

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;

1 个答案:

答案 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()将这些组合回一个数组。