我的目标是从具有特定ID的行中获取数据,并将其转换为JSON对象以插入到另一个表中。我从这里开始的样子
Event_Details
-----------------------------------
ID | ID2 | First_Name| Last_Name |
-----------------------------------
1X | 2B | John | Smith |
2X | 2B | Adam | John |
3X | 2B | Sarah | Jones |
1X | 5C | Joe | Rob |
我想要的内容如下:
[
{
"id2": "2B",
"event": {
"ID": "1X",
"First_Name": "John",
"Last_Name": "Smith"
}
},
{
"id2": "5C",
"event": {
"ID": "1X",
"First_Name": "Joe",
"Last_Name": "Rob"
}
}
]
我需要通过“ ID”将项目归为一个JSON对象,但我希望id2在“事件”数组之外。
到目前为止,这是我要做的第一件事,只是在将查询嵌套在其中时遇到了麻烦:
select json_agg (b)
from (select ID2 as "ID2"
from event_details
)b
答案 0 :(得分:0)
我相信这就是您想要的:
select json_agg(jsonb_build_object('id2', id2,
'event', jsonb_build_object('ID', id,
'First_Name', first_name,
'Last_Name', last_name
)))
from event_details group by id;