我试图通过加入2个表来获取记录,在这种情况下,我考虑了6个月的数据。 我得到了#34;资源超出错误"。
有人可以请一些有助于我绕过此错误的查询增强功能吗?
提前致谢!!
SELECT
*
FROM (
SELECT
A.Id1 AS Id1,
A.Id2 AS Id1,
StartTime,
StopTime,
Duration AS ID,
Latitude,
Longitude,
DateTime
FROM (
SELECT
*
FROM
`Tb1`
WHERE
HardwareId IN (
735,
8055,
8620,
9489,
214,
7543,
2471,
681,
451)
AND _PARTITIONTIME BETWEEN TIMESTAMP('2016-01-01')
AND TIMESTAMP('2016-12-31') ) AS A
JOIN (
SELECT
*
FROM
`Tb2.T2016*`
WHERE
_TABLE_SUFFIX BETWEEN "0601"
AND "1231"
AND HardwareId IN (
735,
8055,
8620,
9489,
214,
7543,
2471,
681,
451) ) AS B
ON
A.StartTime < B.DateTime
AND A.StopTime >= B.DateTime
AND A.Id1 = B.Id1 )
ORDER BY
Id1,
Id2,
DateTime`
答案 0 :(得分:1)
首先删除ORDER BY部分查询!
ORDER BY
Id1,
Id2,
DateTime
通常,这是
的主要原因resources exceeded error in BigQuery
我还注意到您的查询存在一些问题,这很可能与您略微模糊原始查询的事实有关
1 - 使用相同的列名
A.Id1 AS Id1,
A.Id2 AS Id1,
2 - 不同的时间段
'2016-01-01' - '2016-12-31'
BETWEEN TIMESTAMP('2016-01-01') AND TIMESTAMP('2016-12-31')
VS。 '2016-06-01' - '2016-12-31'
BETWEEN "0601" AND "1231"