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

Postgresql: only keep unique values from integer array

假设我有一个整数数组

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;

你很亲近,我觉得:

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().

将它们重新分组到一个数组中