2017-03-16 57 views
0

我想加入兩個表格Tb1和Tb2,並且在Table1的Id1和Id2的字段Id1上進行連接。資源超出谷歌大查詢中的錯誤

當我運行此查詢時,出現錯誤「在查詢執行期間超出資源」。

如果有人能夠對此查詢改進提供反饋,我們將不勝感激。

 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 
+1

在你的問題中的查詢只是總的混亂/垃圾,即使你刪除'ORDER BY' !!將永遠不會工作!花點努力來清理/修復它至少是有道理的。這樣做,你可以向那些願意在這裏幫助你的人表示一些尊重,你有更好的機會獲得幫助!同時 - 明顯地 - 獲取錯誤「在查詢執行過程中超出資源」的最佳方法是將ORDER BY放在非常外部的SELECT中。當然,只要將其刪除或添加「LIMIT NNN」即可 –

回答

0

這很諷刺。今天下午,我們觀看了谷歌關於BigQuery性能的視頻。其中一個主要問題是排序。所以,如果你的結果真的很大,那麼排序是一個大問題。 (以前見過的東西。)

最簡單的解決方法是吞下檸檬水,並決定你真的喜歡limit並且不需要整個結果集。因此,請添加limit 100limit 10000並查看問題是否消失。

不幸的是,如果您需要對整個結果集進行排序,我沒有具體的建議。