postgresql - PostgreSQL:仅保留整数数组中的唯一值

标签 postgresql unique find-occurrences

假设我有一个整数数组

1  6 6  3 3  8  4 4

它的形式总是n*(pairs of number) + 2 (unique numbers)
有没有一种有效的方法只保留2个uniques值(即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()将它们重新组合成一个数组。

关于postgresql - PostgreSQL:仅保留整数数组中的唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31877542/

相关文章:

ruby-on-rails - rails 独特的多对多关系

python-3.x - python 3.4 计算 .txt 文件中的出现次数

postgresql - setval和alter sequence restart命令之间的区别

postgresql - 如何在 PostgreSQL 中跳过 psql\COPY 中的空行

Grails:如何生成对人类友好的、确保唯一的随机数

unique - 如何防御多账户用户?

string - Bash:从字符第一次出现到第二次出现的子串

java - 计算有多少个“元素”出现在双链表中

postgresql - 来自 Postgresql 文件的 Redis 批量插入

postgresql - 你如何在 Golang Gorm 中使用 UUID?