У меня есть рациональная таблица postgresql, которая имеет двухуровневые иерархические данные, и я хочу написать запрос для построения вывода json, как показано ниже, я пытался некоторое время, но не могу понять. Я думаю, нужно использовать некоторые функции, такие как row_to_ json, json_agg, json_build_object, json_build_array и др. c. но я действительно не могу сделать это успешно. Любой может помочь, спасибо!
Иметь эту рациональную таблицу в качестве ввода:
select * from team;
+------------+------------+------------+
| country | city | member |
|------------+------------+------------|
| china | bejing | betty |
| china | bejing | bruce |
| china | shanghai | scott |
| usa | chicago | cindy |
| usa | newyork | nancy |
| usa | newyork | nathan |
+------------+------------+------------+
SELECT 6
Хотите json, как показано ниже:
[
{
"name": "china",
"type": "country",
"children": [
{
"name": "beijing",
"type": "city",
"children": [
{ "name": "betty", "type": "member" },
{ "name": "bruce", "type": "member" }
]
},
{
"name": "shanghai",
"type": "city",
"children": [
{ "name": "scott", "type": "member" }
]
}
]
},
{
"name": "usa",
"type": "country",
"children": [
{
"name": "chicago",
"type": "city",
"children": [
{ "name": "cindy", "type": "member" }
]
},
{
"name": "newyork",
"type": "city",
"children": [
{ "name": "nancy", "type": "member" },
{ "name": "nathan", "type": "member" }
]
}
]
}
]