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

标签 postgresql unique find-occurrences

假设我有一个整数数组

1  6 6  3 3  8  4 4

它将始终采用 n*(数字对)+ 2(唯一数字) 的形式。

是否有一种有效的方法只保留 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() 将它们重新组合成一个数组。

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

相关文章:

postgresql - Symfony/学说 : Invalid byte sequence

ruby-on-rails - 在 Rails 4 迁移中设置自定义主键时出现问题

postgresql - VACUUM FULL 表所需的空间

javascript - 如何通过关联查询 Sequelize 模型,但包括所有关联对象?

excel - 根据区间值提取时隙

c++ - 接受用户输入的字符并按出现的降序显示它们的程序

javascript - 计算单词出现的次数,允许特殊字符和换行符

如果不存在,则 SQL 插入多行,否则使用 COALESCE 更新特定列

java - 用独特的字符串填充微调器

linux - 找到出现的次数并将其添加到模式旁边