【问题标题】:How to flatten nested array data into row in bigquery如何在bigquery中将嵌套数组数据展平为行
【发布时间】:2020-10-18 00:04:07
【问题描述】:

我正在尝试将嵌套数组数据的 inside_array 或子数组展平为表行。 我能够展平数组之外的array_data。 任何人有任何建议。提前谢谢

【问题讨论】:

    标签: google-bigquery unnest


    【解决方案1】:
    #standardSQL
    SELECT ... 
    FROM `project.dataset.table`,
    UNNEST(array_data) AS array_data_rec,
    UNNEST(array_data_rec.inside_array) AS inside_array_rec   
    

    要处理“inside_array 内没有数据” - 使用 LEFT JOIN 代替,如下例所示

    #standardSQL
    SELECT ... 
    FROM `project.dataset.table`,
    UNNEST(array_data) AS array_data_rec
    LEFT JOIN UNNEST(array_data_rec.inside_array) AS inside_array_rec   
    

    【讨论】:

    • 谢谢,这很有帮助。如果 inside_array_rec 中没有数据,它是否不返回任何数据,我尝试从表中获取所有列。
    • 在我的回答中查看补充
    • 非常感谢。正是我一直在寻找的。​​span>
    【解决方案2】:

    你可以做以下

    ...
    FROM
       AA.nested_array,
       UNNEST(array_data) as array_data,
       UNNEST(array_data.inside_array) as array_data_inside_array
    

    【讨论】:

    • 谢谢。这很有帮助。
    猜你喜欢
    • 1970-01-01
    • 2021-11-06
    • 1970-01-01
    • 2020-10-17
    • 2020-03-11
    • 2021-04-27
    • 1970-01-01
    • 2015-10-29
    • 1970-01-01
    相关资源
    最近更新 更多