2017-05-07 95 views
0

我試圖在Google BigQuery中查詢兩個不同的表。 在我的第一表(smgradi)我有兩個字段:BigQuery INNER JOIN與TIMESTAMP和DATE類型

  • 數據 - > TIMESTAMP
  • ConsumoKwh - > INTEGER

以我第二表(meteodata)我有其他兩個字段:

  • DATA - > DATE
  • TMEDIA___C - > INTEGER

我想將這些表格與表格合併,但我必須將第一個TIMESTAMP列轉換爲DATE列。

我試圖與此查詢:

SELECT smgradi.data, smgradi.ConsumoKwh, meteodata.TMEDIA___C 
FROM energy_unitus.smgradi AS smgradi 
INNER JOIN energy_unitus.meteodata AS meteodata 
    ON DATE(smgradi.data) = meteodata.DATA 

但它提供了以下錯誤:

Query Failed Error: ON clause must be AND of = comparisons of one field name from each table, with all field names prefixed with table name. .

我也試着列沒有「DATE」相比,但它顯然返回一個空白表。 你能幫我嗎? 謝謝, Paolo

回答

0

此錯誤是傳統SQL方言的限制。爲了解決它在傳統的SQL,你需要做的類型轉換子查詢:

SELECT smgradi.data, smgradi.ConsumoKwh, meteodata.TMEDIA___C 
FROM (SELECT DATE(data) data, ConsumoKwh FROM energy_unitus.smgradi) AS smgradi 
INNER JOIN energy_unitus.meteodata AS meteodata 
    ON data = meteodata.DATA 

而且,請考慮使用標準SQL,它沒有這樣的限制。