====== Lösungen zur Wetterdatenbank ====== USE wetterdaten; # Wenn dieser Befehl an den Server geschickt wurde (Strg+Enter) # dann kann man bei allen folgenden Befehlen den Namen der Datenbank # also "wetterdaten" weg lassen und nur die Tabelle schreiben. # Praktisch! # Aufgabe 1 # # Zeige alle Wetterstationen nach Höhe sortiert #---------------------------------------------- SELECT * FROM wetterstation ORDER BY hoehe DESC; # Aufgabe 2 # # Wie viele Messungen gibt es? #----------------------------- SELECT COUNT(*) 'Gesamtzahl der Messungen' FROM wettermessung; # Aufgabe 3 # # Zeige die ersten 10 Messungen #------------------------------ SELECT * FROM wettermessung LIMIT 10; # Aufgabe 4 # # Über welchen Zeitraum erstecken sich die Messungen? #---------------------------------------------------- SELECT MIN(datum) AS 'von', MAX(datum) AS 'bis' FROM wettermessung; # Aufgabe 5 # # Anzahl der Messungen pro Jahr und Monat #---------------------------------------- SELECT YEAR(datum) AS 'Jahr', MONTH(datum) AS 'Monat', COUNT(*) AS 'Messungen' FROM wettermessung GROUP BY YEAR(datum), MONTH(datum) ORDER BY datum; # Aufgabe 6 # # Durchschnittliche Sonnenscheindauer nach Monaten #------------------------------------------------- SELECT MONTH(datum) AS 'Monat', COUNT(*) AS 'Messungen', FORMAT(AVG(sonnenscheindauer), 2) AS 'Mittlere Sonnenscheindauer' FROM wettermessung GROUP BY MONTH(datum) ORDER BY MONTH(datum); # Aufgabe 7 # # Messungen in Stuttgart #----------------------- SELECT * FROM wettermessung WHERE stations_id = 4931 ORDER BY datum; # Aufgabe 8 # # Jahresdurschnittstemperatur Stuttgart #-------------------------------------- SELECT "Stuttgart", format(AVG(mittel_2m), 2) AS 'Mittlere Jahrestemperatur' FROM wettermessung WHERE stations_id = 4931; # Aufgabe 9 # # Jahresdurschnittstemperatur Zugspitze #-------------------------------------- SELECT "Zugspitze", format(AVG(mittel_2m), 2) AS 'Mittlere Jahrestemperatur' FROM wettermessung WHERE stations_id = (SELECT s_id FROM wetterstation WHERE standort = 'Zugspitze'); # Aufgabe 10 # # Höchste gemessene Temperatur #----------------------------- SELECT MAX(max_2m) AS 'Höchste Temperatur' FROM wettermessung; # Aufgabe 11 # # ... dazu die Messung #--------------------- SELECT * FROM wettermessung WHERE max_2m = (SELECT MAX(max_2m) FROM wettermessung); # Aufgabe 12 # # ... dazu die Station #--------------------- SELECT * FROM wetterstation WHERE s_id = (SELECT stations_id FROM wettermessung WHERE max_2m = (SELECT MAX(max_2m) FROM wettermessung)); # Aufgabe 13 # # ... optimierte Darstellung #--------------------------- SELECT standort, (SELECT MAX(max_2m) FROM wettermessung) AS 'Höchste Temperatur' FROM wetterstation WHERE s_id = (SELECT stations_id FROM wettermessung WHERE max_2m = (SELECT MAX(max_2m) FROM wettermessung)); # Aufgabe 14 # # Durchschnittstemperatur und Höchstwert nach Standort (ID) #---------------------------------------------------------- SELECT stations_id, COUNT(*) AS 'Messungen', FORMAT(AVG(mittel_2m), 2) AS 'Mittlere Temperatur', MAX(max_2m) AS 'Höchste Temperatur' FROM wettermessung GROUP BY stations_id ORDER BY AVG(mittel_2m);