arrays - Postgres GROUP BY 整数数组

标签 arrays postgresql aggregate-functions

我在 Postgres 9.3 中的数据库表

| f1|f2 | f3
| 1 | 2 | {1,2,3}
| 1 | 3 | {4,5}

f1,f2 是整数 f3 是整数[].

我怎样才能得到这个:

SELECT f1, myfn(f3)
FROM dbTable
GROUP BY f1;

所以我得到:

| 1 | {1,2,3,4,5}

Postgres中有没有类似array_agg的函数,连接数组并创建一个新数组;

最佳答案

SQL Fiddle

unnest再聚合

select f1, array_agg(f3) as f3
from (
    select f1, unnest(f3) as f3
    from dbtable
) s
group by f1

为了避免重复和排序输出(必须安装内部扩展):

select f1, sort(uniq(array_agg(f3))) as f3
from (
    select f1, unnest(f3) as f3
    from dbtable
) s
group by f1

关于arrays - Postgres GROUP BY 整数数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25147903/

相关文章:

sql - 从表中选择一组动态列并获取每个列的总和

java - 索引像素来为图片的某些位置着色

postgresql - pg_column_size 怎么可能小于 octet_length?

postgresql - 通过 jenkins 部署 postgres - 持续集成/部署

java - hibernate :PSQLException:错误:列 "column_name"不存在

sql - 在 PostgreSQL 中显示多列的每月总计

sql - SELECT 列表中的所有列是否都必须出现在 GROUP BY 子句中

C# 变长字符串数组

c - 递归填充形状的程序

c - 如何正确使用有关字符串数组的 isalpha 函数?