2017-05-07 58 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,它没有这样的限制。