我可以通过单个查询将几个BigQuery列合并到一个重复的字段中吗?

时间:2015-08-23 20:34:29

标签: google-bigquery

我在BigQuery中有一个大表,看起来像这样:

<div ng-repeat="id in ids">
   <span ng-class="{'red': redIds.indexOf(id) != -1}">ID: {{id}}</span>
</div>

我想使用BigQuery查询将此表转换为对所有代码列使用重复字段的格式。所以结果看起来像这样(用JSON表示,以演示代码的重复字段):

ref_id code1 code2 code3 code4 code5 code6 code7 code8
     1    47   742    89   374   893    27     4    68
     2   766     9    84     8  4576    49    76     4

我可以通过输出到另一个表的BigQuery查询来实现吗?我知道我可以下载数据,将其重新格式化为JSON然后重新插入,但有几十亿行我希望我可以通过对原始数据的查询来完成。

1 个答案:

答案 0 :(得分:1)

这是一种方法 - 将代码与“,”作为分隔符连接起来,然后使用SPLIT生成REPEATED字段,即

select id, split(concat(string(code1), ",", string(code2))) codes from
(select 1 id, 47 code1, 742 code2),
(select 2 id, 766 code1, 9 code2)