2016-05-27 13 views
1

Mit dem Datensatz fh-bigquery:weather_gsod möchte ich einige monatliche Wetterdaten für alle Stationen in einem bestimmten Land abrufen. Nämlich, ich möchte die monatliche Durchschnittstemp, monatliche durchschnittliche und maximale monatliche Durchschnitt, von 1929 bis heute.Abrufen von AVG Temp pro Monat mit BigQuery?

Das, was ich schrieb zurückzuholen, was ich aus einer Tabelle benötigen, 2015. Die Daten, die ich bekommen scheinen richtig:

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 

Unter der Annahme, dass diese Abfrage in der Tat die Informationen nicht abrufen ich brauche, wie ich es umschreiben kann damit ich die ganze Palette (1929 bis 2016) einbeziehen kann?

Antwort

2

sollten Sie Table wildcard functions dafür verwenden, wie in unten

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

Excellent. Vielen Dank! Kurzes Follow-up: Wenn ich das Jahr mit den Daten zurückgeben möchte, wäre es korrekt, dies zu schreiben: 'GROUP BY stn, year, mo', oder? – iTurki

+0

ja, und Sie müssen auch "Jahr" zu "SELECT" hinzufügen –