将常规Postgresql行转换为jsonb行[已关闭]

4ngedf3f  于 2023-03-29  发布在  PostgreSQL
关注(0)|答案(1)|浏览(202)

已关闭。此问题需要超过focused。当前不接受答案。
**想要改进此问题吗?**更新此问题,使其仅关注editing this post的一个问题。

2天前关闭。
截至2天前,社区正在审查是否重新讨论此问题。
Improve this question
如何将常规的Postgresql表行转换为jsonb行?我有一个Postgres表,其中有6行和5列:(对不起,我知道我不应该添加图像,但我不知道如何使列直)
现金投资债务
我想将这些行转换为下表中的jsonb行,该表有2列:
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}}

我将非常感谢任何帮助!
谢谢x1c 0d1x

m1m5dgzv

m1m5dgzv1#

谢谢伯吉先生的指导。我想我的代码是有效的

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;

相关问题