2017-06-05 16 views
1

BigQueryに2つの配列があり、サイズが同じであることがわかっています。どのように私は構造体の1つの配列または2つの要素配列または同様の配列にそれらを圧縮することができますか?Bigquery - 2つの配列を1つに圧縮する方法は?

次のクエリは、私が望むものではないxとyのすべての可能な組み合わせを与えてくれます。

+--------+--------+ 
| pair.x | pair.y | 
+--------+--------+ 
| a  | 1  | 
| b  | 2  | 
| c  | 3  | 
+--------+--------+ 

答えて

3

使用WITH OFFSETとブラケット演算子:

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 

私はこのような何かを取得したいと思い

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; 
+0

こんにちは@Elliotを、ただ不思議、どこかのBigQueryドキュメントでありこの 'WITH OFFSET'操作について説明していますか?私はそれを探していたが、見つけることができなかった。 –

+0

これは[クエリ構文]のトピック(https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax#unnest)に含まれていますが、機能と演算子の一部ではありません見る場所)。私は、これをより発見可能にするために技術者にフォローアップします。おそらく配列の作業の一部であるべきです。 –

+0

ああ、それを得た!助けてくれてありがとう :)!実際に私が探した最初の場所は、関数と演算子でしたし、配列を使って作業しています。 –

関連する問題