【发布时间】:2020-07-20 22:56:51
【问题描述】:
我有一个包含 2 级分层数据的 postgresql 有理表,我想编写一个查询来构建如下所示的 json 输出,我尝试了一段时间但无法弄清楚。我想需要使用一些函数,如 row_to_json、json_agg、json_build_object、json_build_array 等,但我真的无法成功完成。 任何人都可以提供帮助,谢谢!
将此有理表作为输入:
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" }
]
}
]
}
]
【问题讨论】:
标签: json postgresql hierarchical