【发布时间】:2019-11-10 04:03:00
【问题描述】:
我的下表包含嵌套的STRUCTs,并且在子查询中,我试图在结构级别添加其他列。到目前为止,我已经创建了一个可重复的示例:
WITH wide_stats AS (
(
SELECT
'joe' name, 'bills' team,
struct(struct(7 as fga, 5 as fgm) as o, struct(8 as fga, 3 as fgm) as d) as t1,
struct(struct(3 as fga, 4 as fgm) as o, struct(9 as fga, 2 as fgm) as d) as t2
) UNION ALL (
SELECT 'nick' name, 'jets' team,
struct(struct(12 as fga, 7 as fgm) as o, struct(13 as fga, 7 as fgm) as d) as t1,
struct(struct(15 as fga, 7 as fgm) as o, struct(22 as fga, 7 as fgm) as d) as t2
)
)
SELECT
*,
-- safe_divide(wide_stats.t1.o.fgm, wide_stats.t1.o.fga) as fg_pct,
safe_divide(wide_stats.t1.o.fgm, wide_stats.t1.o.fga) as wide_stats.t1.o.fg_pct
FROM wide_stats
当前代码在第 18 行(使用 safe_divide)抛出错误 Syntax error: Unexpected "." at [18:70]。如果我在第 17 行/第 18 行切换,代码可以工作,但是 fg_pct 不在 t1.o 结构中,我希望它在哪里。
有没有办法在这样的子查询中将列添加到嵌套结构中?
【问题讨论】:
标签: google-bigquery