如何在 BigQuery 中对使用 WITH AS 创建的时态表进行连接?
How to do joins on temporal tables created using WITH AS in BigQuery?
我在 BigQuery 中工作,我正在使用 WITH AS 语句创建时态表,然后在它们之间进行连接,我们将它们命名为 table_1 和 table_2。这些表创建起来很复杂,我的意思是,它们需要大量的工作和代码,我需要反复使用它们,我想避免每次都做大而昂贵的子查询,例如,在它们之间做左连接.问题是当我创建 table_1 时一切正常,但是当我创建 table_2 并尝试进行左连接时,弹出警告并告诉我 table_1 不存在,所以我怎样才能做到这一点?我的代码如下:
WITH table_1 AS ( SELECT key,f2,f3 FROM xxxxxxx WHERE XXXXXXXXX)
SELECT * table_1;
WITH table_2 AS ( SELECT key,f4,f5 FROM xxxxxxx WHERE XXXXXXXXX)
SELECT * table_2;
我想在键上的 table_1 和 table_2 之间进行左连接,但我不知道该怎么做。有什么提示吗?提前致谢和问候
您可以在同一语句中使用 WITH
定义多个表达式来进行连接。
WITH table_1 AS ( SELECT key,f2,f3 FROM xxxxxxx WHERE XXXXXXXXX),
table_2 AS ( SELECT key,f4,f5 FROM xxxxxxx WHERE XXXXXXXXX)
SELECT * table_1 LEFT JOIN table_2 ON table_1.key = table_2.key;
我在 BigQuery 中工作,我正在使用 WITH AS 语句创建时态表,然后在它们之间进行连接,我们将它们命名为 table_1 和 table_2。这些表创建起来很复杂,我的意思是,它们需要大量的工作和代码,我需要反复使用它们,我想避免每次都做大而昂贵的子查询,例如,在它们之间做左连接.问题是当我创建 table_1 时一切正常,但是当我创建 table_2 并尝试进行左连接时,弹出警告并告诉我 table_1 不存在,所以我怎样才能做到这一点?我的代码如下:
WITH table_1 AS ( SELECT key,f2,f3 FROM xxxxxxx WHERE XXXXXXXXX)
SELECT * table_1;
WITH table_2 AS ( SELECT key,f4,f5 FROM xxxxxxx WHERE XXXXXXXXX)
SELECT * table_2;
我想在键上的 table_1 和 table_2 之间进行左连接,但我不知道该怎么做。有什么提示吗?提前致谢和问候
您可以在同一语句中使用 WITH
定义多个表达式来进行连接。
WITH table_1 AS ( SELECT key,f2,f3 FROM xxxxxxx WHERE XXXXXXXXX),
table_2 AS ( SELECT key,f4,f5 FROM xxxxxxx WHERE XXXXXXXXX)
SELECT * table_1 LEFT JOIN table_2 ON table_1.key = table_2.key;