【问题标题】:Getting an array of a parameter from repeated nested column in BigQuery从 BigQuery 中的重复嵌套列中获取参数数组
【发布时间】:2019-11-14 15:06:57
【问题描述】:

我有一个表,其中一列定义为:

my_column ARRAY<STRUCT<key STRING, value FLOAT64, description STRING>>

有没有一些简单的方法可以使用SELECT 语句为每一行获取一组value 参数?

显然,这不起作用:

SELECT my_column.value
FROM my_table

我可以使用 UNNEST 然后 ARRAY_AGG 对所有其他列进行分组,但感觉就像是 hack。

【问题讨论】:

    标签: sql arrays data-structures google-bigquery


    【解决方案1】:

    以下是 BigQuery 标准 SQL

    我可以使用 UNNEST 然后 ARRAY_AGG 对所有其他列进行分组,但感觉就像是 hack。

    不,这根本不是 hack。同时你可以避免在这里使用显式 UNNEST

    #standardSQL
    SELECT ARRAY(SELECT value FROM t.my_column) AS my_column_values
    FROM `project.dataset.my_table` t   
    

    #standardSQL
    SELECT (SELECT ARRAY_AGG(value) FROM t.my_column) my_column_values
    FROM `project.dataset.my_table` t
    

    【讨论】:

      【解决方案2】:

      您可以取消嵌套和重新聚合:

      SELECT (SELECT ARRAY_AGG(c.value)
              FROM UNNEST(my_column) c
             ) as c_values
      FROM my_table
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-03-14
        • 2018-12-23
        • 1970-01-01
        • 2015-01-25
        • 2023-02-04
        • 1970-01-01
        • 1970-01-01
        • 2021-12-29
        相关资源
        最近更新 更多