BigQuery: ксоринг элементов двух массивов - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть два массива.

a = [1, 2, 3, 4]

b = [11, 22, 33, 44]

Как я могу xor соответствующих элементов двух массивов, чтобы получить результат как

результат = [10, 20, 34, 40] i-е 1 ^ 11 = 10, 2 ^ 22 = 20 и т. Д.

Я пробовал BIT_XOR (x), но он занимает один массив и xor всех элементов массива.

SELECT BIT_XOR(x) AS bit_xor FROM UNNEST([1, 2, 3, 4]) AS x;

Спасибо

1 Ответ

0 голосов
/ 17 сентября 2018

Вы можете "сжать" два массива вместе:

SELECT
  ARRAY(
    SELECT x ^ b[OFFSET(off)]
    FROM UNNEST(a) AS x WITH OFFSET off) AS bit_xor
FROM dataset.table

Это объединяет элементы на основе их смещения в двух массивах.

...