如何聚合Postgres表,以使ID唯一并且在数组中收集列值?

时间:2018-08-27 16:25:04

标签: postgresql

我不确定如何调用我要执行的操作,因此尝试查找并不能很好地工作。我想基于一个列聚合我的表,并用唯一ID将来自另一列的所有行折叠为一个数组。

| ID | some_other_value |
-------------------------
| 1  | A                |
| 1  | B                |
| 2  | C                |
| .. | ...              |

返回

| ID | values_array     |
-------------------------
| 1  | {A, B}           |
| 2  | {C}              |

很抱歉为您提供错误的解释,我这里的词汇真的很缺乏。非常感谢您编写查询实现示例中的内容的任何帮助。

2 个答案:

答案 0 :(得分:1)

请参阅Aggregate Functions文档。

SELECT
    id,
    array_agg(some_other_value)
FROM
    the_table
GROUP BY
    id;

答案 1 :(得分:1)

尝试以下操作。

select id, array_agg(some_other_value order by some_other_value ) as values_array from <yourTableName> group by id

您还可以选中here