我想在表格中返回记录,我在一个字段中加入jsons数组。
我有一个工作解决方案,但有一个不受欢迎的f1
insdie它。
当前查询:
select
grouped_by_table.json_array as my_col
from profiles
left join (
select
p.profile_id,
array_to_json(array_agg(row(p))) as json_array
from (select * from positions) p
group by profile_id
) as grouped_by_table on grouped_by_table.profile_id::int = profiles.id
当前结果:
(这是单个记录的my_col
列中的数据)
[{
"f1": {
"id": 153,
"start_year": 2014,
"end_year": 2016,
"profile_id": "100"
}
}, {
"f1": {
"id": 151,
"start_year": 2016,
"end_year": null,
"profile_id": "100"
}
}]
期望的结果:
(我想删除f1
图层)
[{
"id": 153,
"start_year": 2014,
"end_year": 2016,
"profile_id": "100"
}, {
"id": 151,
"start_year": 2016,
"end_year": null,
"profile_id": "100"
}]
谢天谢地。
答案 0 :(得分:1)
使用json_agg
代替array_agg
:
select profile_id
, json_agg(p)
from positions p
group by
profile_id