sql - 合并来自两个不同列的两个对象数组,以在 postgresql 中创建一个新的唯一且非空对象数组

标签 sql arrays postgresql merge

我有一个结果集,它返回 3 列,其中一列是 varchar,两列是数组,现在我需要合并数组列以创建一个不包含唯一元素的新数组。我尝试了不同的选项,但没有一个有效,有什么建议吗?

最佳答案

您可以连接数组并将取消嵌套 成行。然后您可以使用 distinct 获取唯一行,并使用 array_agg 将它们组合回一个数组:

select  id
,       array_agg(nr)
from    (
        select  distinct id
        ,       unnest(array[col1] || col2 || col3) nr
        from    t1
        ) sub
group by
        id

Example at SQL Fiddle.

关于sql - 合并来自两个不同列的两个对象数组,以在 postgresql 中创建一个新的唯一且非空对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50617834/

相关文章:

javascript - Sequelize 按日期分组,忽略小时/分钟/秒

mysql - 以附加的形式从两个表中提取数据

SQL 总和

php - php 数组中的井号键/哈希键/井号标签

c - 如何在C中访问指针到指针的值?

python - 将 Postgresql 表导出为带有标题的 excel

java - 如何在存储过程中将架构名称作为参数传递

javascript - 如果单击“确定”更新数据库中的 2 行,则会发出警报,否则不执行任何操作

php - PHP 中 ArrayAccess 接口(interface)的好处?

sql - Spring Data JPA Native Query - 如何使用 Postgres ARRAY 类型作为参数