BigQuery 中的 WITH 语句后跟 SET
WITH statement followed by SET in BigQuery
我正在将几个 SQL 语句流水线化在一起,发现我无法从 WITH 语句继续执行并使用结果继续并设置一个变量。我得到的错误是:
Syntax error: Expected "(" or keyword SELECT or keyword WITH but got keyword SET at [17:2]
语句看起来像
WITH newtable AS (SELECT session, var FROM `table` WHERE session...)
(SET myvariable = (SELECT count(*) FROM newtable WHERE ....);
根据此 GCP 文档,您只能在 SELECT
语句之后使用 WITH
:
https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax#sql_syntax
鉴于该限制,您可以只使用 DDL 语句从查询结果创建 table 并设置变量。
create table newtable AS (SELECT session, var FROM table);
DECLARE myvariable NUMERIC;
SET myvariable = (SELECT count(*) FROM newtable);
我正在将几个 SQL 语句流水线化在一起,发现我无法从 WITH 语句继续执行并使用结果继续并设置一个变量。我得到的错误是:
Syntax error: Expected "(" or keyword SELECT or keyword WITH but got keyword SET at [17:2]
语句看起来像
WITH newtable AS (SELECT session, var FROM `table` WHERE session...)
(SET myvariable = (SELECT count(*) FROM newtable WHERE ....);
根据此 GCP 文档,您只能在 SELECT
语句之后使用 WITH
:
https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax#sql_syntax
鉴于该限制,您可以只使用 DDL 语句从查询结果创建 table 并设置变量。
create table newtable AS (SELECT session, var FROM table);
DECLARE myvariable NUMERIC;
SET myvariable = (SELECT count(*) FROM newtable);