Sql Bigquery查询失败“;查询执行期间超出了资源:用于查询的表元数据太大”;
我犯了错误 “查询执行期间超出了资源:用于 查询太大“ 执行此查询时:Sql Bigquery查询失败“;查询执行期间超出了资源:用于查询的表元数据太大”;,sql,google-bigquery,legacy-sql,Sql,Google Bigquery,Legacy Sql,我犯了错误 “查询执行期间超出了资源:用于 查询太大“ 执行此查询时: SELECT EXACT_COUNT_DISTINCT(a.id) FROM ( SELECT id FROM (TABLE_DATE_RANGE([*****], TIMESTAMP('2019-4-1'), TIMESTAMP('2019-4-22'))) GROUP BY id) AS a JOIN ( SELECT id FROM (TA
SELECT
EXACT_COUNT_DISTINCT(a.id)
FROM (
SELECT
id
FROM (TABLE_DATE_RANGE([*****],
TIMESTAMP('2019-4-1'),
TIMESTAMP('2019-4-22')))
GROUP BY
id) AS a
JOIN (
SELECT
id
FROM (TABLE_DATE_RANGE([*****],
TIMESTAMP('2017-1-1'),
TIMESTAMP('2018-12-31')))
GROUP BY
id) AS b
ON
a.id = b.id
如果我将
时间戳('2017-1-1')、时间戳('2018-12-31')
更改为时间戳('2018-1-1')、时间戳('2018-12-31')
,它将起作用。我能做些什么来修复它而不更改时间戳?首先,为什么您使用的是传统SQL而不是标准SQL
其次,您通过
id
聚合每个子查询,因此不存在重复项。您不需要在外部查询中计算不同的ID。count(*)
执行相同的操作。这可能会解决问题。为什么传统SQL不能工作,而标准SQL可以?不同的限制标准?@Evan.Chen。遗留SQL就是它的名字所暗示的——SQL的旧版本。谷歌一直在努力创建一个更标准的兼容界面,该界面提供了新的功能。你应该用它。