2013-07-11 29 views
8

入れ子になっていない複数の繰り返しフィールドを含むスキーマがあります。BigQueryで複数の繰り返しフィールドをクエリする

私は外積を照会しようとしているが、私はエラーを取得: は「繰り返しフィールドの外積を照会することはできません...」

を私は2繰り返しフィールドを照会した場合、私は1つを平らにすることができますそのうちの。しかし、2つの繰り返しフィールドをクエリすることに興味があり、FLATTEN構文がこれをどのようにサポートしているのか理解できません。例えば

、テーブル構造であると言う。 A1は、レコード(反復):a1.b1、整数 A2、レコード(反復):a2.b1、整数 A3、レコード(反復):a3.b1 、整数

私は照会する:あなたはFLATTEN内でネストされた副選択を使用することができ、タブ

答えて

13

から(*)を選択し 。 select文のまわりに余分な括弧が必要です。 (構文は醜いですが、残念ながら)。例えば

SELECT 
    ... 
FROM (
    FLATTEN((
     SELECT 
     ... 
     FROM (
      FLATTEN((
      SELECT 
       ... 
      FROM 
       table), 
      f1) 
     ) 
     ), 
     f2) 
    ) 
) 
+0

作品を使用することができます!最も内側のselectで一度だけ選択するフィールドを指定し、他のすべての入れ子のselectではselect *を書きたいと思います。しかし、order by句を指定することはできません。なぜなら、order byは、フィールドをselectフィールドに表示する必要があるからです。 – Lior

7

あなたは内側のSELECT内の特定の何かをする必要がない場合は、あなただけの魅力のような

(FLATTEN(FLATTEN(table, a1), a2))

+0

これも問題なく動作します。 –

関連する問題