BigQuery 将 JSON 转置为列
BigQuery Transpose JSON into columns
我是 BigQuery 的新手,我正在尝试从一个简单的 JSON 字段中提取一些信息并将其转置到列中。
这是 bigquery 上 json 的示例。
[
{
"name": "pack",
"value": "Classic Pack"
},
{
"name": "pack_id",
"value": 24910
},
{
"name": "pack_count",
"value": 4
}
]
我的理想table是这样的
pack | pack_id
Classic Pack | 24910
我正在努力尝试使用 JSON 函数,但到目前为止没有任何效果。
谢谢大家
考虑以下方法
select * except(json_col) from (
select json_col,
json_value(kv, '$.name') col,
json_value(kv, '$.value') value
from your_table,
unnest(json_extract_array(json_col)) kv
)
pivot(any_value(value) for col in ('pack', 'pack_id', 'pack_count'))
有输出
我是 BigQuery 的新手,我正在尝试从一个简单的 JSON 字段中提取一些信息并将其转置到列中。
这是 bigquery 上 json 的示例。
[
{
"name": "pack",
"value": "Classic Pack"
},
{
"name": "pack_id",
"value": 24910
},
{
"name": "pack_count",
"value": 4
}
]
我的理想table是这样的
pack | pack_id
Classic Pack | 24910
我正在努力尝试使用 JSON 函数,但到目前为止没有任何效果。
谢谢大家
考虑以下方法
select * except(json_col) from (
select json_col,
json_value(kv, '$.name') col,
json_value(kv, '$.value') value
from your_table,
unnest(json_extract_array(json_col)) kv
)
pivot(any_value(value) for col in ('pack', 'pack_id', 'pack_count'))
有输出