2016-05-27 22 views
1

使用fh-bigquery:weather_gsod數據集,我想檢索特定國家/地區所有電臺的某些月度天氣數據。也就是說,我想要從1929年到現在的每月平均溫度,每月平均最高值和每月平均最低值。使用BigQuery按月檢索AVG Temp?

這是我寫的檢索是我從一個表的需要,2015年我得到的數據似乎是正確的:

SELECT stn, FIRST(name) AS station_name, mo, (AVG(temp)-32)*0.5556 AS temp, (AVG(max)-32)*0.5556 AS max, (AVG(min)-32)*0.5556 AS min 
FROM [fh-bigquery:weather_gsod.gsod2015] gsod 
JOIN [fh-bigquery:weather_gsod.stations2] stations 
ON gsod.wban=stations.wban AND gsod.stn=stations.usaf 
WHERE country='SA' 
GROUP BY stn, mo 
ORDER BY mo 

假設這個查詢確實檢索到我需要的信息,我該怎麼把它改寫這樣我可以包括整個範圍(1929年至2016年)?

回答

2

你應該在下面

SELECT 
    stn, 
    FIRST(name) AS station_name, 
    mo, 
    (AVG(temp)-32)*0.5556 AS temp, 
    (AVG(max)-32)*0.5556 AS max, 
    (AVG(min)-32)*0.5556 AS min 
FROM (
    SELECT * FROM 
    (TABLE_QUERY([fh-bigquery:weather_gsod], 'table_id CONTAINS "gsod"')) 
) gsod 
JOIN [fh-bigquery:weather_gsod.stations2] stations 
ON gsod.wban=stations.wban AND gsod.stn=stations.usaf 
WHERE country='SA' 
GROUP BY stn, mo 
ORDER BY mo 
+0

優秀的使用Table wildcard functions此作爲。謝謝!快速跟進:如果我想要數據返回的年份,寫下這個是正確的:'GROUP BY stn,year,mo',對不對? – iTurki

+0

是的,你還需要在'SELECT'中添加'year' –