簡體   English   中英

BigQuery - 獲取嵌套重復記錄的字段

[英]BigQuery - Get fields of nested Repeated Records

我正在使用可以具有多個級別的嵌套重復記錄字段的 BigQuery 表,如示例中所示。 我需要在給定的表上進行選擇,只提取一些字段並忽略其他字段,最后除了忽略的字段外具有相同的結構。 我想我必須使用 array_agg 和 unnest 從重復的記錄字段中只獲取所需的字段,但不知道該怎么做。 在示例中,我只想將 DatiRighe 和 DatiRigheDettaglio 保留為 Struct,對於它們中的每一個,我想保留除 DatiRighe.Nota 和 DatiRigheDettaglio.cod_iva 之外的所有內容。

在此處輸入圖像描述

根據您的要求嘗試以下查詢:

SELECT
 * REPLACE((
   SELECT
     AS STRUCT * EXCEPT(Nota)
   FROM (
     SELECT
       AS STRUCT DatiRighe.* REPLACE((
         SELECT
           AS STRUCT DatiRighe.DatiRigheDettaglio.* EXCEPT(cod_iva))AS DatiRigheDettaglio) )) AS DatiRighe)
FROM
 `my-project_id.database.table`

在查詢中,我使用EXCEPT刪除不需要的列,並使用REPLACE將相應的結構替換為新修改的結構。 讓我知道它是否有幫助。

暫無
暫無

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

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