从 BigQuery 中的查询返回数组(重复字段)

ner*_*ero 5 google-bigquery

我是 BigQuery 和 SQL 的新手。我有一张包含以下详细信息的表格

模式

ID : String : Nullable
BCats : String : Repeated
Run Code Online (Sandbox Code Playgroud)

ID可以重复

预览

   ID           BCats
|-----------------------|
|  ABCD     |   BCat25  | 
|           |   BCat24  |
|           |   BCat23  |
|_______________________|
|  PQRS     |   BCat8   |
|           |   BCat9   |
|_______________________|
|  ABCD     |   BCat23  |
|           |   BCat25  |
|           |   BCat24  |
|_______________________|
|  MNOP     |   BCat12  |
|           |   BCat13  |
|_______________________|
|  PQRS     |   BCat8   |
|           |   BCat9   |
|-----------------------|
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用以下查询根据 ID 对表进行分组

询问

SELECT BCats,ID
FROM (SELECT (GROUP_CONCAT(BCats)) as BCats,ID
      FROM(
        SELECT
        UNIQUE(BCats) as BCats,ID FROM
            my_table
        GROUP BY 
          ID
          )
    GROUP BY
          ID
    )
Run Code Online (Sandbox Code Playgroud)

JSON 格式的查询输出为

查询的输出

{"BCats":"BCat25,BCat24,BCat23","ID":"ABCD"}

{"BCats":"BCat8,BCat9","ID":"PQRS"} 

{"BCats":"BCat12,BCat13","ID":"MNOP"}
Run Code Online (Sandbox Code Playgroud)

我的问题是如何从 Query 输出 Array,如下所示

期望输出

{"BCats" : ["BCat25","BCat24","BCat23"],"ID":"ABCD"}
Run Code Online (Sandbox Code Playgroud)

目前我正在将 BCats 作为字符串获取。

我需要将此数据输出到新表中,并将 BCats 作为重复。

请帮忙。

预览 :

Mik*_*ant 4

尝试下面。注意:在Web UI中,您不仅需要设置Destination Table,还需要设置/选中Allow Large Results复选框和取消选中Flatten Results复选框

SELECT NEST(UNIQUE(BCats)) AS BCats, ID 
FROM my_table
GROUP BY ID
Run Code Online (Sandbox Code Playgroud)