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);