首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Redshift中扁平化JSON数据?

如何在Redshift中扁平化JSON数据?
EN

Stack Overflow用户
提问于 2022-10-31 11:32:21
回答 1查看 52关注 0票数 0

我想把这个JSON数据放到一个Redshift表中,其中包含了产品、价格和数量列。我应该如何使用Redshift的JSON函数来做到这一点?https://docs.aws.amazon.com/redshift/latest/dg/json-functions.html

{ "lamp": { "price": 18.99, "quantity": 30 }, "desk": { "price": 129.99, "quantity": 12 }, "vase": { "price": 22.49, "quantity": 18 }, "speakers": { "price": 49.99, "quantity": 50 } }

我尝试过使用JSON_EXTRACT_PATH_TEXT函数,但我不确定如何将它应用于这些数据(例如,它可以使用通配符来执行迭代吗?)

EN

回答 1

Stack Overflow用户

发布于 2022-11-01 13:03:05

您可以使用JSON_PARSE而不是JSON_EXTRACT_PATH_TEXT,它返回可以轻松访问json对象的超级数据类型。我不知道你从哪里得到数据,但这是我的例子。

使用示例创建表:

代码语言:javascript
运行
复制
create table test.temp_json
(
    json_super super
);
insert into test.temp_json
values (json_parse('{ "lamp": { "price": 18.99, "quantity": 30 }, "desk": { "price": 129.99, "quantity": 12 }, "vase": { "price": 22.49, "quantity": 18 }, "speakers": { "price": 49.99, "quantity": 50 } }'))

存取数据:

代码语言:javascript
运行
复制
select key as product, value.price as price, value.quantity as quantity
from test.temp_json j,
     UNPIVOT j.json_super AS value AT key;

结果:

  • 灯,18.99,30
  • 办公桌,129.99,12
  • 花瓶,22.49,18
  • 扬声器,49.99,50

F 211

阅读更多关于json_parse和un枢轴https://docs.aws.amazon.com/redshift/latest/dg/JSON_PARSE.html an https://docs.aws.amazon.com/redshift/latest/dg/query-super.html#unpivoting的信息

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74262629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档