如何在BigQuery中将重复浮点数字段拆分为多列
解决方案
因为你的数组长度固定为10,完全不需要用UNNEST,直接通过数组偏移量索引提取每个元素即可,同时保留原表所有其他列。
具体SQL示例
假设原表是project.dataset.X,要创建新表project.dataset.new_X,可以用以下语句:
CREATE OR REPLACE TABLE `project.dataset.new_X` AS SELECT -- 保留原表所有其他列 *, -- 提取数组的第1到第10个元素,分别命名为v0到v9 output[OFFSET(0)] AS v0, output[OFFSET(1)] AS v1, output[OFFSET(2)] AS v2, output[OFFSET(3)] AS v3, output[OFFSET(4)] AS v4, output[OFFSET(5)] AS v5, output[OFFSET(6)] AS v6, output[OFFSET(7)] AS v7, output[OFFSET(8)] AS v8, output[OFFSET(9)] AS v9 FROM `project.dataset.X`;
说明
- BigQuery中数组的索引从0开始,
OFFSET(n)用于获取数组中第n+1个元素(比如OFFSET(0)对应数组第一个元素v0) *会保留原表所有列,包括原来的output字段;如果不需要保留原output字段,可以把*替换成原表除output外的所有列名- 如果只是需要查询结果而不是创建新表,去掉
CREATE OR REPLACE TABLE ... AS部分即可
内容的提问来源于stack exchange,提问作者Laleh G
相关产品推荐
相关产品推荐

