Google bigquery bigquery能否查询扁平表并将其转换为嵌套数据结构

Google bigquery bigquery能否查询扁平表并将其转换为嵌套数据结构,google-bigquery,Google Bigquery,现在我面临一个问题,bigquery中有5个表, 表A中有一条记录,而表B中有5条记录与之有一些联系。以下是示例: 表A:记录A 表B:记录B、c、d、e、f 现在我正在使用以下sql: select A.*,B.* from A join each B on A.xx = B.xx 查询结果如下:a,b;a、 c;a、 d;a、 e;a、 f(显示在5行中) 有没有办法让结果变成这样: a,b c d e f; (show in 1 row) 希望你的帮助! 谢谢 一种方法是使用 这将产生

现在我面临一个问题,bigquery中有5个表, 表A中有一条记录,而表B中有5条记录与之有一些联系。以下是示例: 表A:记录A 表B:记录B、c、d、e、f

现在我正在使用以下sql:

select A.*,B.* from A join each B on A.xx = B.xx
查询结果如下:
a,b;a、 c;a、 d;a、 e;a、 f(显示在5行中)

有没有办法让结果变成这样:

a,b c d e f; (show in 1 row)
希望你的帮助! 谢谢

一种方法是使用

这将产生:

+-----+-------+-----------+---+
| Row | t1_c1 |    f0_    |   |
+-----+-------+-----------+---+
|   1 | a     | b,c,d,e,f |   |
+-----+-------+-----------+---+
另一个是使用(*免责声明适用于进一步阅读)

但这必须写入表中,因为BigQuery会自动展平查询结果,因此如果在顶级查询中使用嵌套函数,结果将不会包含重复的字段。使用产生中间结果供同一查询立即使用的子选择时,请使用嵌套函数

默认情况下,在界面上,BigQuery会展平所有查询结果。要保留嵌套和重复的结果,请选择目标表并启用“允许大结果”,然后取消选中“展平结果”
选项

*但是,当您使用写入目标表时,此功能存在一个已知错误:
-如果您不将结果保存到目标表中,这可能很好。

为了解决Pentium10在回答中指出的限制- 有关详细信息,请参阅解决方法

它允许

1. mimic NEST() for multiple fileds   
2. save result directly to table
从而解决了当前的两个限制

a. NEST function accepts only one field  
b. NEST is not compatible with unFlatten Results Output
1. mimic NEST() for multiple fileds   
2. save result directly to table
a. NEST function accepts only one field  
b. NEST is not compatible with unFlatten Results Output