arrays - Bigquery - 如何将两个数组压缩为一个?

标签 arrays google-bigquery

如果我知道 BigQuery 中有两个大小相等的数组。如何将它们压缩到一个结构数组或两个元素数组或类似数组中?

以下查询为我提供了 x 和 y 的所有可能组合,这不是我想要的。

WITH test AS (
  SELECT
    ['a', 'b', 'c'] as xs,
    [1, 2, 3] as ys
)
SELECT struct(x, y) as pairs 
FROM test, unnest(xs) as x, unnest(ys) as y

我想得到这样的东西:
+--------+--------+
| pair.x | pair.y |
+--------+--------+
| a      | 1      |
| b      | 2      |
| c      | 3      |
+--------+--------+

最佳答案

使用 WITH OFFSET和括号运算符:

WITH test AS (
  SELECT
    ['a', 'b', 'c'] as xs,
    [1, 2, 3] as ys
)
SELECT struct(x, ys[OFFSET(off)] as y) as pairs 
FROM test, unnest(xs) as x WITH OFFSET off;

关于arrays - Bigquery - 如何将两个数组压缩为一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44365507/

相关文章:

c# - 在c#中初始化多维对象数组

arrays - 将制表符分隔的字符串拆分为 bash 中的数组

java - 如何让二维数组行并排打印为列?

mysql - Bigquery 表基于日期的前导列值

google-bigquery - 决定何时在 Bi​​gQuery 中对表进行分区时,有什么好的平衡点?

sql - BigQuery - 将科学记数法转换为十进制格式

python - 错误 403 : Your client does not have permission to get URL in python google cloud module

javascript - ES6 : Find an object in an array by one of its properties

c++ - 使用数组作为函数输入参数

python - 在Python中使用Google数据流从Bigquery到Bigtable数据传输