我在尝试使用 CREATE TABLE 语句以及 BigQuery 中前面的 WITH 子句创建临时表时遇到语法错误。
我遇到错误
Syntax error: Unexpected keyword CREATE at [18:1]
可供参考的可重现查询示例。删除了所有业务逻辑,以便任何人都可以在其 BQ 控制台上运行。
-- Create dummy client products table
WITH
client_products AS (
SELECT
'Retailer A' AS retailer,
1 AS product_id,
101 AS group_id,
'1234567890123' AS gtin,
'Category A' AS category,
'Client Product A' AS client_product,
'Competitor Product A' AS key_competitor_product,
'Product A' AS product_name,
'Image A' AS product_image
)
-- All products.
create temp table all_products_test AS (
SELECT
retailer,
product_id,
group_id,
gtin,
category,
client_product,
key_competitor_product,
product_name,
product_image,
brand
FROM client_products
);
我猜测这是因为 BQ 中的 CTA 存在一些范围问题。但我不知道如何使用WITH和TEMP表。我的用例需要两者。
WITH
属于 SELECT
子句,因此需要将两者都嵌套到 CREATE TABLE
子句中:
-- Create dummy client products table
create temp table all_products_test AS (
WITH
client_products AS (
SELECT
'Retailer A' AS retailer,
1 AS product_id,
101 AS group_id,
'1234567890123' AS gtin,
'Category A' AS category,
'Client Product A' AS client_product,
'Competitor Product A' AS key_competitor_product,
'Product A' AS product_name,
'Image A' AS product_image
)
-- All products.
SELECT
retailer,
product_id,
group_id,
gtin,
category,
client_product,
key_competitor_product,
product_name,
product_image,
brand
FROM client_products
);