Я использую PostgreSQL 9.4 и пытаюсь использовать функции JSON для построения вложенного JSON с агрегацией.
Моя структура таблицы выглядит следующим образом:
id|display_key |state|age|gender|count
1 | 1 |CA | 34| Male | 25
2 | 1 |CA | 30| Male | 15
3 | 1 |CA | 30| Female| 25
4 | 1 |AZ | 31| Female| 25
5 | 2 |CA | 30| Female| 25
Я хочу, чтобы результат JSON дал мне счет населения на уровне штата, а затем я хочу перейти к другим измерениям, таким как возраст и пол.
Ожидаемый результат JSON:
{
"info":[
{
"display_id":1,
"states":[
{
"state_name":"CA",
"count":65,
"ages":[
{
"age":34,
"count":25,
"genders":[
{
"gender":"Male",
"count":25
}
]
},
{
"age":30,
"count":40,
"genders":[
{
"gender":"Male",
"count":15
},
{
"gender":"Female",
"count":25
}
]
}
]
},
{
"state_name":"AZ",
"count":25,
"ages":[
{
"age":31,
"count":25,
"genders":[
{
"gender":"Female",
"count":25
}
]
}
]
}
]
},
{
"display_id":2,
"states":[
{
"state_name":"CA",
"count":25,
"ages":[
{
"age":30,
"count":25,
"genders":[
{
"gender":"Female",
"count":25
}
]
}
]
}
]
}
]
}