【发布时间】:2018-09-29 04:53:39
【问题描述】:
我正在尝试将两个不同的数据集与 Google BigQuery 上的子查询结合起来。
当我单独使用子查询时,它会运行并返回每年的总平均温度。但是,当我将查询合并为子查询时,它只返回所述所有时期的平均温度,而不是每年的平均温度。
我的代码:
#standardSQL
SELECT t1.year, gas_fuel, liquid_fuel, solid_fuel, cement, annual_anomaly, (SELECT avg(temp)
FROM `bigquery-public-data.noaa_gsod.gsod*`
WHERE year > '1982') as average_temperature
FROM `cs779-term-project.CO2_FossilFuel.GlobalEmissions` as t1
JOIN `cs779-term-project.CO2_FossilFuel.SeaLevels` as t2
on t1.year = t2.year
Where t1.year > 1982
ORDER BY t1.year ASC;
另外,当我在子查询中添加GROUP BY year 时,它会显示以下错误:
错误:标量子查询产生了多个元素
谢谢!
【问题讨论】:
-
是否要将
t1.year的avg(tmp)显示为average_temperature?然后您可能希望将子查询中的谓词year > '1982'更改为year = t1.year。 -
是的,你是对的。谢谢!问题在于 year > '1982' 是一个字符串,而 year = t1.year 它是一个整数。所以它现在说:错误:对于参数类型的运算符 = 没有匹配的签名:STRING,INT64。支持的签名:ANY = [5:9] 处的 ANY。有什么想法吗?
标签: mysql sql oracle oracle11g google-bigquery