BigQuery:将单值字段与重复字段拼接生成新数组字段
BigQuery 合并单个字段与数组生成新数组字段
原表结构
| id | extra_field | field1 | field2 |
|---|---|---|---|
| 1 | row1 | a | [b,c] |
| 2 | row2 | x | [y,z] |
| 2 | row3 | t | [] |
需求
将每行的field1(单个值)与field2(数组)按顺序合并,生成新的数组字段field3,期望结果如下:
期望结果
| id | extra_field | field3 |
|---|---|---|
| 1 | row1 | [a,b,c] |
| 2 | row2 | [x,y,z] |
| 3 | row3 | [t] |
解决方案
使用BigQuery的ARRAY_CONCAT函数,先将单个值field1转换为单元素数组,再与field2数组拼接:
SELECT id, extra_field, ARRAY_CONCAT([field1], field2) AS field3 FROM `你的项目.你的数据集.你的表名`
说明
[field1]:将单个字符串值转换为仅包含该值的数组ARRAY_CONCAT:按顺序拼接多个数组,当field2为空数组时,拼接结果就是仅包含field1的数组,完全符合需求
内容的提问来源于stack exchange,提问作者Alcastic
相关产品推荐
相关产品推荐

