在BigQuery中查询多个重复的字段

Lio*_*ior 11 google-bigquery

我有一个包含多个未嵌套的重复字段的模式.

我正在尝试查询交叉产品,但是我收到一个错误:"无法查询重复字段的交叉产品......"

如果我只查询2个重复的字段,我可以展平其中一个.然而,我有兴趣查询更多的2个重复字段,我无法理解FLATTEN语法如何支持这一点.

例如,假设表结构为:a1,记录(重复):a1.b1,整数a2,记录(重复):a2.b1,整数a3,记录(重复):a3.b1,整数

我想查询:从选项卡中选择(*)

Jor*_*ani 14

您可以在内部使用嵌套的子选择FLATTEN.它需要在select语句周围添加额外的paren.(不幸的是,语法有点难看).例如

SELECT
  ...
FROM (
    FLATTEN((
      SELECT
        ...
      FROM (
          FLATTEN((
            SELECT
              ...
            FROM
              table),
            f1)
          )
        ),
      f2)
    )
  )
Run Code Online (Sandbox Code Playgroud)


And*_*ity 7

如果你不需要在内部选择中做任何特定的事情,你可以使用

(FLATTEN(FLATTEN(表,a1),a2))