luti: Kreuztabelle / nach Datum (Monat, Jahr)

Beitrag lesen

Hallo,

ich komme irgendwie nicht weiter ... Ich habe einen recht umfangreichen Datensatz zum Thema Klima für gut 2000 Standorte (durch lat und long definiert). Die Daten enthalten u.a. die Durchschnittstemperatur (tav), die durchschnittliche Minimal- (tmin) und Maximaltemperatur (tmax) sowie den durchschnittlichen Niederschlag (rrr). Die Daten sind für 9 Jahre vorhanden, jeweils 3 Werte pro Monate (also Dekaden, 10-Tages-Intervalle).

Die über die 9 Jahre gemessenen durchschnittlichen Januarwerte frage ich z.B. so ab:

SELECT latitude, longitude, AVG(tav) 01_tav, AVG(tmax) 01_tmax, AVG(tmin) 01_tmin, AVG(rrr) 01_rrr  
FROM f2000to2008  
WHERE MONTH = 1  
GROUP BY latitude, longitude  
ORDER BY latitude, longitude

Nun würde ich mit möglichst wenigen Abfragen

  • die Durchschnittswerte für alle Monate über die 9 Jahre abfragen (also als Spalten erhalten: latitude, longitude, 01_tav, 01_tmax, ..., 12_rrr)
  • sowie das gleich für die 9 Jahre in Folge (ist aber erst mal nebensächlich).

Wie stelle ich das am geschicktesten an? Irgendwie benötige ich wohl eine Pivot/Kreuztabelle, oder? Da komme ich aber nicht wirklich mit zurecht. Und mit Subqueries und Unions bin ich auch nicht weiter gekommen.

Vielen Dank & Grüße,
luti

ps: Ich verwende MySQL 5.