分组为单个 json 列

Group by into single json colum

使用 SQL 我想转换一个 table 看起来像这样

id col11 col2
1 a b
1 c d
2 e f
2 g h

进入看起来像这样的东西:

id combined
1 [{col1: a, col2:b}, {col1: c, col2:d}]
1 [{col1: e, col2:f}, {col1: g, col2:h}]

我们可以尝试使用 json_build_object 函数从可变参数列表中构建一个 JSON 对象,然后使用 json_agg 函数。

SELECT id,
    json_agg(json_build_object('col1',col11,
                               'col2',col2)) combined
FROM t
GROUP BY id

sqlfiddle