我正在尝试连接两个表Tb1和Tb2,并且在table1的字段Id1和table2的Id2上进行连接。
当我运行此查询时,我收到错误"在查询执行期间超出资源"。
如果有人可以就此查询改进提供反馈,我们将不胜感激。
SELECT
*,
DATE(DateTime) AS Date
FROM (
SELECT
a.Id AS Id,
b.DateTime AS DateTime,
b.Location1 AS Latitude,
b.Location2 AS Longitude
FROM (
SELECT
*
FROM (
SELECT
Id AS Hid1,
FROM
[Tb1]
WHERE
DBName LIKE '%honda%') AS a
INNER JOIN (
SELECT
Id AS Hid2,
DateTime AS DateTime,
Location1 AS Latitude,
Location2 AS Longitude
FROM
TABLE_DATE_RANGE([Tb2],TIMESTAMP('2017-02-13'),TIMESTAMP('2017-02-14'))) AS b
ON
a.Id1 = b.Id2 ))
WHERE
DATE(DateTime) BETWEEN '2017-02-13'
AND '2017-02-14'
ORDER BY
Id,
Date
答案 0 :(得分:0)
这很具有讽刺意味。今天下午我们观看了关于BigQuery性能的谷歌视频。其中一个主要问题是排序。所以,如果你的结果真的很大,那么排序是一个大问题。 (我之前见过的东西。)
最简单的解决方案是吞下柠檬水并确定你真的非常喜欢limit
并且不需要整个结果集。因此,添加limit 100
或limit 10000
并查看问题是否消失。
不幸的是,如果您需要对整个结果集进行排序,我没有具体的建议。