如何将常规 Postgresql 表行转换为 jsonb 行? 我有一个包含这 6 行和 5 列的 Postgres 表: (对不起,我知道我不应该添加图像,但我不知道如何使列变直)
ticker fy现金投资债务
我想将这些行转换为下表中有 2 列的 jsonb 行:
create table bal_sheet( ticker varchar(10) ,data jsonb);
第一列是代码,第二行是 jsonb 形式,如下所示:
AAPL, {"cash":{"fy22":100,"fy21":150,"fy20":200},"investments": {"fy22":200,"fy21":250,"fy20":300},"debt": {"fy22":300,"fy21":350,"fy20":400}}
MSFT, {"cash":{"fy22":110,"fy21":120,"fy20":130},"investments": {"fy22":210,"fy21":220,"fy20":230},"debt": {"fy22":310,"fy21":320,"fy20":3300}}
如果有任何帮助,我将不胜感激!
谢谢
感谢Bergi先生的指导。我认为我的代码有效
create table t_bal_sheet_json (
ticker varchar(10),
data jsonb
);
insert into t_bal_sheet_json (ticker, data)
select
ticker,
jsonb_build_object(
'cash', jsonb_object_agg(fy,cash),
'investments', jsonb_object_agg(fy,investments),
'debt', jsonb_object_agg(fy,debt)
) as data
from t_bal_sheet
group by ticker;