繁体   English   中英

BigQuery JSON 数组提取

[英]BigQuery JSON Array extraction

我有这个 JSON

    "type": "list",
    "data": [
        {
            "id": "5bc7a3396fbc71aaa1f744e3",
            "type": "company",
            "url": "/companies/5bc7a3396fbc71aaa1f744e3"
        },
        {
            "id": "5b0aa0ac6e378450e980f89a",
            "type": "company",
            "url": "/companies/5b0aa0ac6e378450e980f89a"
        }
    ],
    "url": "/contacts/5802b14755309dc4d75d184d/companies",
    "total_count": 2,
    "has_more": false
}

我想动态创建列作为具有其 ID 的公司的数量,例如:

公司_0 公司_1
5bc7a3396fbc71aaa1f744e3 5b0aa0ac6e378450e980f89a

尝试使用BigQuery 的 JSON 函数,但我没有接受它。

谢谢你。

考虑以下方法

select * except(json) from (
  select json, json_extract_scalar(line, '$.id') company, offset
  from your_table t, unnest(json_extract_array(json, '$.data')) line with offset
  where json_extract_scalar(line, '$.type') = 'company'
)
pivot (any_value(company) company for offset in (0, 1))          

如果应用于您问题中的示例数据 - output 是

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM