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
我有一个 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