gpt4 book ai didi

sql - PostgreSQL : Building a nested json structure on a single table?

转载 作者:行者123 更新时间:2023-11-29 13:42:34 25 4
gpt4 key购买 nike

我正在尝试从单个表构建嵌套的 Json 结构。

我试图让最终结果看起来像:

[
{
"contract_number":"GS00F0XXX",
'category': [
{
'cat_id': "874 1",
'socio': {
"eighta":false,
"sdvosb":false,
"edwosb":false
}
},
{
"cat_id":"874 6",
'socio': {
"eighta":false,
"sdvosb":false,
"edwosb":false,
}
}
]
},
{
'contract_number': "GS00Q14OAXXX",
'category': [
{
'cat_id': 'OASIS POOL1',
'socio': ...
}
]
}
]

底层表看起来像这样:

contract_type   contract_number duns_number eighta  sdvosb  edwosb  category
MOBIS GS00F0XXX 5555555 FALSE FALSE FALSE 874 1
MOBIS GS00F0XXX 5555555 FALSE FALSE FALSE 874 6
MOBIS GS00F0XXX 5555555 FALSE FALSE FALSE 874 7
OASIS GS00Q14OAXXX 5555555 FALSE FALSE FALSE OASIS POOL1
OASIS GS00Q14OAXXX 5555555 FALSE FALSE FALSE OASIS POOL2

我试过这个查询,但它把所有东西都放在两行上,每次我尝试嵌套 json_agg 调用时,我都会收到有关 nestng 聚合函数的错误。

select 
json_build_object(
'contract_number', contract_number,
'info', json_agg(
json_build_object(
'category_id', category,
'eighta',eighta,
'sdvosb',sdvosb,
'edwosb',edwosb
)
)
)
from contract_vehicle
group by duns_number, contract_number

这导致 SQL 错误 [42803]:错误:聚合函数调用不能嵌套

select 
json_build_object(
'contract_number', contract_number,
'info', json_agg(
json_build_object(
'category_id', category,
'socio', jsonb_agg(
json_build_object(
'eighta',eighta,
'sdvosb',sdvosb,
'edwosb',edwosb
)
)
)
)
)
from contract_vehicle
group by duns_number, contract_number

最佳答案

我不确定这是否有效,但试一试 :)

with cte as (
select json_agg(
json_build_object(
'eighta',eighta,
'sdvosb',sdvosb,
'edwosb',edwosb
)
) a1,duns_number dn, contract_number cn
from contract_vehicle
group by duns_number, contract_number)
select json_build_object(
'contract_number'::text, contract_number::text,
'info'::text, json_agg(
json_build_object(
'category_id'::text, category::text,
'socio'::text, a1
)
)
)
from contract_vehicle inner join cte on (duns_number=dn and contract_number = cn)
group by duns_number, contract_number;

关于sql - PostgreSQL : Building a nested json structure on a single table?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53083512/

25 4 0