【发布时间】:2022-06-14 22:27:20
【问题描述】:
我们在雪花中有以下工作查询:
with
latest_track_metrics as (
select * from track_metrics
where "week_id" = (select max("week_id") from track_metrics)
)
select * from latest_track_metrics
为了稍微清理一下这段代码,我们很乐意将 select max("week_id") from track_metrics 重构为带有变量名的自己的行,如下所示:
with
max_weekid as (select max("week_id") from track_metrics),
latest_track_metrics as (
select * from track_metrics
where "week_id" = max_weekid // error on this line, not recognizing max_weekid
)
select * from latest_track_metrics
但是后一个查询返回错误Error: invalid identifier 'MAX_WEEKID' (line 5)。我们尝试用括号、引号、反引号等将max_weekid 包裹起来,但都没有成功。这种方式可以调用CTE吗?
【问题讨论】:
-
将 max_weekid 视为子查询或表。而不是 WHERE week_id= 您应该将它与 track_metrics 与 JOIN 子句连接起来,然后它的行为就会像您预期的那样。
-
加入表,然后,我假设,过滤匹配来自 max_weekid 的值的值?会试一试。
标签: snowflake-cloud-data-platform