【发布时间】:2023-03-08 02:18:02
【问题描述】:
我在列(记录)中有一个 json 文档,其中有一个表(表),如下所示。需要编写一个 SQL 查询来将所有出现的字段“a”、“b”、“k”的值带入 aaagroup。
结果应该是:
NAME1 age1 comment1
NAME2 age2
NAME3 comment3
JSON 数据:
{
"reportfile": {
"aaa": {
"aaagroup": [{
"a": "NAME1",
"b": "age1",
"k": "comment1"
},
{
"a": "NAME2",
"b": "age2"
},
{
"a": "NAME3",
"k": "comment3"
}]
},
"dsa": {
"dsagroup": [{
"j": "Name"
},
{
"j": "Title"
}]
}
}
}
我使用下面的查询单次出现:
数据:
{"reportfile":{"aaa":{"aaagroup":[{"a":"NAME1","k":"age1}]},"dsa":{"dsagroup":[{"j":"USERNAME"}],"l":"1","m":"1"}}}
查询:
select
substr(cc.BUS_NME, 1, strpos(cc.BUS_NME,'"')-1) as BUS_NME,
substr(cc.AGE, 1, strpos(cc.AGE,'"')-1) as AGE
from
(substr(bb.aaa,strpos(bb.aaa,'"a":"')+5) as BUS_NME,
substr(bb.aaa,strpos(bb.aaa,'"k":"')+5) as AGE
from
(substr(aa.G, strpos(aa.G,'"aaagroup'),strpos(aa.G,'},')) as aaa
from
(select substr(record, strpos(record,'"aaagroup')) as G
from TABLE) aa) bb) cc
【问题讨论】:
-
请用您正在使用的 RDBMS(及其版本)标记您的问题。 JSON 函数是非常特定于供应商的。
-
这是一个 parquet 文件,加载到 AWS Athena 并创建了一个表。
标签: sql amazon-athena