I have a schema that contains multiple repeated fields which are not nested.
I\'m trying to query the cross product, but I get an error: \"Cannot query the cross pr
If You don't need to do anything specific inside the inner select, You can just use
(FLATTEN(FLATTEN(table, a1), a2))
You can use a nested subselect inside the FLATTEN
. It requires an extra paren around the select statement. (the syntax is kind of ugly, unfortunately). e.g.
SELECT
...
FROM (
FLATTEN((
SELECT
...
FROM (
FLATTEN((
SELECT
...
FROM
table),
f1)
)
),
f2)
)
)
Now that BigQuery has moved to Standard SQL, using FLATTEN
doesn't work. However Google has documented how to migrate. This solution worked for me, although there are several other ways to do it:
SELECT
flattened_field_1,
flattened_field_2
FROM my_dataset.my_table
LEFT JOIN UNNEST(repeated_field_1) AS flattened_field_1
LEFT JOIN UNNEST(repeated_field_2) AS flattened_field_2
# ...etc