我发现在查询中使用WITH
块来分解逻辑很有帮助。我是否正确地认为我不能在ARRAY
表达式中的嵌套字段上这样做?我可以将其分成嵌套查询-这已经足够了,但并不理想。
例如,这个是可行的:
SELECT
repository.url,
ARRAY(
SELECT
action
FROM (
SELECT
action
FROM
UNNEST(payload.pages))) action
FROM
`bigquery-public-data.samples.github_nested`
...但这个不会:
SELECT
repository.url,
ARRAY(
WITH
p AS (
SELECT
action
FROM
UNNEST(payload.pages))
SELECT
action
FROM
p) action
FROM
`bigquery-public-data.samples.github_nested`
错误: 未识别的名称: payload at [9:14]
。可能是因为该WITH
块尚未定义表格?是否有其他方式可以解决这个问题?编辑:这是一个玩具查询,用于说明问题,不代表我们正在运行的实际查询。