Sql 在json_agg中显示和设置自定义列别名
基于以下示例:Sql 在json_agg中显示和设置自定义列别名,sql,json,postgresql,Sql,Json,Postgresql,基于以下示例: WITH Table_A as (select 1 as AA), Table_B AS (select 2 as BB), Table_CD AS (select 3 as CC, 4 AS DD) select json_build_object( 'X', (select json_agg(A.AA) from Table_A A) , 'Y', (select json_agg(B.*) from T
WITH Table_A as (select 1 as AA),
Table_B AS (select 2 as BB),
Table_CD AS (select 3 as CC, 4 AS DD)
select json_build_object(
'X', (select json_agg(A.AA) from Table_A A)
, 'Y', (select json_agg(B.*) from Table_B B)
, 'Z', (select json_agg(CD.*) from Table_CD CD)
)
{“X”:[1],“Y”:[{“bb”:2}],“Z”:[{“cc”:3,“dd”:4}]}
Z:[{“custom1”:3,“custom2”:4}]}
我几乎找到了解决方案,但如果任何表返回的行数超过1行,结果就会成倍增加,如何避免
WITH TableA as (select unnest(array[1,2,3,4]) as AA),
TableB AS (select 2 as BB)
SELECT
json_build_object(
'Object1', json_agg(json_build_object('Value_1', AA))
,'Object2', json_agg(json_build_object('Value_2', BB))
)
FROM TableA A
JOIN TableB B ON TRUE
WITH TableA as (select unnest(array[1,2,3,4]) as AA),
TableB AS (select 2 as BB)
SELECT
json_build_object(
'Object1', json_agg(json_build_object('Value_1', AA))
,'Object2', json_agg(json_build_object('Value_2', BB))
)
FROM TableA A
JOIN TableB B ON TRUE