=====Temperaturauswertung mit Datenbank=====
Die heißen Tage haben mich inspiriert, die gemessenen heißen Tage und Tropennächte zu ermitteln. Die Datenbank enthält folgende relevanten Felder:
time timestamp,
temperature float(4,2)
**Ermittlung der Sommertage: Bedingung: T(max) ≥ 25 °C**
SELECT count(*) AS Anzahl
FROM ( SELECT *
FROM outdoor
WHERE year(time)=2018
GROUP BY date(time)
HAVING max(temperature) >= 25.0 ) AS tmp";
**Ermittlung der Hitzetage: Bedingung: T(max) ≥ 30 °C**
HAVING max(temperature) >= 30.0
**Ermittlung der Wüstentage: Bedingung: T(max) ≥ 35 °C**
HAVING max(temperature) >= 35.0
**Ermittlung der Frosttage: Bedingung: T(min) < 0 °C**
HAVING min(temperature) < 0.0
**Ermittlung der Eistage: Bedingung: T(max) < 0 °C**
HAVING max(temperature) < 0.0
**Ermittlung der Tropennächte: **
Bedingung: T(min) ≥ 20 °C für den Zeitraum 18.00 - 6:00 Uhr. Die Abfrage ist etwas schwieriger, da Werte zu unterschiedlichen Tagen zusammengefasst werden müssen. Die Idee ist: Ändere temporär für die Werte zwischen 0 und 6 Uhr das Datum um -1, fasse dann alle Zeiten für einen Tag zwischen 18 - 24 Uhr und 0- 6 Uhr zu einer Gruppe zusammen.
SELECT count(*) AS Anzahl
FROM ( SELECT (CASE when hour(time) between 0 and 5
THEN DATE_ADD(time, INTERVAL -1 DAY)
ELSE time
END) AS zeit
FROM outdoor
WHERE year(time)=2018
AND ( hour(time) BETWEEN 18 AND 23 OR
hour(time) BETWEEN 0 AND 5 )
GROUP BY date(CASE WHEN hour(time) BETWEEN 0 AND 5
THEN DATE_ADD(time, INTERVAL -1 DAY)
ELSE time
END)
HAVING min(temperature) >= 20.0 ) AS tmp;