PostgreSQL - 使用 group by 子句创建一个 jsonb 数组

PostgreSQL - Create an array of jsonb using group by clause

我有一个 SQL 查询 returns 图片中附加的数据。我想对信息进行分组,基本上只有 2 行(在这种特殊情况下)。第 1 行将是:"evaluation_id": 1, "nombre": "Método: Jackson, Pollock & Ward" 和 "formulario" 应该是 json 个对象的数组(在本例中,记录:1、2、3 和 4)。第 2 行将是:"evaluation_id": 2, "nombre": "Método: Medición Antropométrica Estándar" 和 "formulario" 应该是一个只有一个 json 对象的数组(记录 #5) .

evaluation_id nombre formulario
1 Jackson, Pollock & Ward [{json1},{json2},{json3},{json4}]
2 Medición Antropométrica Estándar [{json5}]

我曾尝试使用以下函数:array_to_json、json_object、json_aggr、json_array_elements,但无法实现。

请检查此查询的输出是否符合您的预期

-- if use json type
select evaluation_id, nombre, json_agg(formulario)
from your_table
group by 1, 2

-- if use jsonb type
select evaluation_id, nombre, jsonb_agg(formulario)
from your_table
group by 1, 2