簡體   English   中英

從 BQ 中的結構數組中選擇結構

[英]Getting selection of structs from an array of structs in BQ

我有一個表,其中一列定義為:

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

是否有一些簡單的方法來指定要在SELECT語句中返回的參數列表? 例如刪除description ,因此結果列仍然是一個結構數組,但只包含keyvalue

下面是 BigQuery 標准 SQL

#standardSQL
SELECT * REPLACE(
  ARRAY(
    SELECT AS STRUCT * EXCEPT(description)
    FROM UNNEST(my_column)
  ) AS my_column)
FROM `project.dataset.table`  

以上完全保留了表的架構,並且僅通過刪除描述來更改 my_column 字段

我只會取消嵌套,然后重新聚合您選擇的字段。

select array_agg(struct(m.key,m.value)) as my_new_column
from table
left join unnest(my_column) m

我找到了這種方式:

SELECT
ARRAY(SELECT AS VALUE STRUCT(key, value) FROM a.my_column) as my_new_column
FROM my_table a

無需加入或取消嵌套。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM