SQL 查询不适用于 Google BigQuery
SQL query not working on Google BigQuery
当我在 Google Bigquery 上尝试此查询时,出现以下错误:
"SELECT query which references non constant fields or uses aggregation functions or has one or more of WHERE, OMIT IF, GROUP
BY, ORDER BY clauses must have FROM clause."
发生了什么事?
SELECT fq.ds_id AS ds_id,
fq.dm_id AS dm_id,
fq.freq AS freq,
rc.rec AS rec,
rd.reg AS reg
FROM dataset.table_fq_ds fq
INNER JOIN EACH dataset.table_rc_ds rc ON (fq.ds_id = rc.ds_id)
INNER JOIN EACH dataset.table_rd_ds rd ON (fq.ds_id = rd.ds_id);
希望以下内容能帮助您解决问题
第一个 SELECT 完美运行,而第二个给出完全相同的错误
"Correct"版本
SELECT
fq.ds_id AS ds_id,
fq.dm_id AS dm_id,
fq.freq AS freq,
rc.rec AS rec,
rd.reg AS reg
FROM ( SELECT 1 AS ds_id, 11 AS dm_id, 12 AS freq) fq
INNER JOIN EACH (SELECT 1 AS ds_id, 22 AS rec) rc ON (fq.ds_id = rc.ds_id)
INNER JOIN EACH (SELECT 1 AS ds_id, 33 AS reg) rd ON (fq.ds_id = rd.ds_id);
ds_id dm_id freq rec reg
1 11 12 22 33
有错误的版本 - 更改仅在第一个 INNER:
SELECT ds_id 对比 SELECT 1 AS ds_id
SELECT
fq.ds_id AS ds_id,
fq.dm_id AS dm_id,
fq.freq AS freq,
rc.rec AS rec,
rd.reg AS reg
FROM ( SELECT 1 AS ds_id, 11 AS dm_id, 12 AS freq) fq
INNER JOIN EACH (SELECT ds_id, 22 AS rec) rc ON (fq.ds_id = rc.ds_id)
INNER JOIN EACH (SELECT 1 AS ds_id, 33 AS reg) rd ON (fq.ds_id = rd.ds_id);
Error: SELECT query which references non constant fields or uses
aggregation functions or has one or more of WHERE, OMIT IF, GROUP BY,
ORDER BY clauses must have FROM clause.
当我在 Google Bigquery 上尝试此查询时,出现以下错误:
"SELECT query which references non constant fields or uses aggregation functions or has one or more of WHERE, OMIT IF, GROUP
BY, ORDER BY clauses must have FROM clause."
发生了什么事?
SELECT fq.ds_id AS ds_id,
fq.dm_id AS dm_id,
fq.freq AS freq,
rc.rec AS rec,
rd.reg AS reg
FROM dataset.table_fq_ds fq
INNER JOIN EACH dataset.table_rc_ds rc ON (fq.ds_id = rc.ds_id)
INNER JOIN EACH dataset.table_rd_ds rd ON (fq.ds_id = rd.ds_id);
希望以下内容能帮助您解决问题
第一个 SELECT 完美运行,而第二个给出完全相同的错误
"Correct"版本
SELECT
fq.ds_id AS ds_id,
fq.dm_id AS dm_id,
fq.freq AS freq,
rc.rec AS rec,
rd.reg AS reg
FROM ( SELECT 1 AS ds_id, 11 AS dm_id, 12 AS freq) fq
INNER JOIN EACH (SELECT 1 AS ds_id, 22 AS rec) rc ON (fq.ds_id = rc.ds_id)
INNER JOIN EACH (SELECT 1 AS ds_id, 33 AS reg) rd ON (fq.ds_id = rd.ds_id);
ds_id dm_id freq rec reg
1 11 12 22 33
有错误的版本 - 更改仅在第一个 INNER:
SELECT ds_id 对比 SELECT 1 AS ds_id
SELECT
fq.ds_id AS ds_id,
fq.dm_id AS dm_id,
fq.freq AS freq,
rc.rec AS rec,
rd.reg AS reg
FROM ( SELECT 1 AS ds_id, 11 AS dm_id, 12 AS freq) fq
INNER JOIN EACH (SELECT ds_id, 22 AS rec) rc ON (fq.ds_id = rc.ds_id)
INNER JOIN EACH (SELECT 1 AS ds_id, 33 AS reg) rd ON (fq.ds_id = rd.ds_id);
Error: SELECT query which references non constant fields or uses aggregation functions or has one or more of WHERE, OMIT IF, GROUP BY, ORDER BY clauses must have FROM clause.