5th Sep 2025 9 Leseminuten Mini-Lehrgang: Analysieren Sie echte Wetterdaten in SQL und finden Sie die beste Reisezeit LearnSQL.de Team Datenanalyse Inhaltsverzeichnis Auf der Suche nach Sonnenschein und wenig Regen? Erste Schritte: Laden des Wetterdatensatzes Schritt-für-Schritt: Analysieren der Wetterdaten in SQL Beginnen Sie mit der Erkundung der Daten Wie hoch ist die Durchschnittstemperatur in Szeged? Welcher Monat ist der wärmste in Szeged? Was sind die häufigsten Wettertypen? Wie oft regnet es pro Monat? An welchen Tagen war es kalt und windig? Aufgabe: Was war die heißeste jemals aufgezeichnete Temperatur? Probieren Sie es mit anderen Städten Sie suchen nach der perfekten Zeit für einen Urlaub? Mit ein paar SQL-Abfragen und echten Wetterdaten aus Szeged, Ungarn, können Sie herausfinden, welche Monate heiß, regnerisch oder ideal für einen Spaziergang in der Sonne sind. Dieses Mini-Tutorial ist eine unterhaltsame und praktische Möglichkeit, Ihre SQL-Kenntnisse zu verbessern - und vielleicht auch schon Ihre nächste Reise zu planen, wenn Sie schon dabei sind. Auf der Suche nach Sonnenschein und wenig Regen? Bei der Planung eines Urlaubs geht es nicht nur um die Wahl des Reiseziels. Es geht auch um das Timing - wann ist das Wetter tatsächlich angenehm? Mit nur wenigen SQL-Abfragen können Sie Fragen beantworten wie: Wann ist der heißeste Monat in einer Stadt? Wann regnet es am häufigsten? Gibt es im Frühling häufig windige Tage? In diesem Lernprogramm arbeiten Sie mit echten historischen Wetterdaten aus Szeged, Ungarn, und üben grundlegende SQL-Fähigkeiten wie SELECT, GROUP BY, HAVING und ORDER BY. Es handelt sich um ein praktisches Miniprojekt, das praktische Übungen mit ein wenig Reiselust verbindet. Möchten Sie zunächst die Grundlagen auffrischen? Versuchen Sie den Kurs SQL für Anfänger unter LearnSQL.de- er ist anfängerfreundlich, interaktiv und vermittelt alles, was Sie brauchen, um diesem Tutorial zu folgen. Sie können diese Abfragen auch anpassen, um das Wetter an anderen Orten zu analysieren. Historisches Wetter API Suchen Sie nach Daten von anderen Orten? Die Open-Meteo Historical Weather API ist eine großartige kostenlose Ressource zum Herunterladen von Wetterdaten nach Städten oder Koordinaten. SQL ist nicht nur für Berichte und Dashboards geeignet - es kann Ihnen sogar bei der Planung Ihres nächsten Urlaubs helfen. Lassen Sie uns eintauchen. Erste Schritte: Laden des Wetterdatensatzes Wir werden den öffentlichen Datensatz Wetter in Szeged 2006-2016 von Kaggle verwenden, der tägliche Wetterdaten von 2006 bis 2016 enthält. Laden Sie die Daten herunter: Besuchen Sie die Kaggle-Seite und laden Sie die Datei weatherHistory.csv herunter. Bereiten Sie die Datei für den Import vor. Um diese Datei in eine Datenbank Ihrer Wahl zu importieren, müssen Sie: Entfernen Sie die +01:00 aus der Formatted Date. Sie können dazu die Funktion "Suchen und Ersetzen" Ihres Editors verwenden. Die Überschriften umbenennen, so dass Unterstriche statt Leerzeichen verwendet werden. Sie können die Datei mit Excel, Notepad oder einem beliebigen Texteditor bearbeiten. Hier ist die bereinigte Kopfzeile: formatted_date,summary,precip_type,temperature_c,apparent_temperature_c,humidity,wind_speed_kmh,wind_bearing_deg,visibility_km,pressure_mb,daily_summary 3. Erstellen Sie die Tabelle in Ihrer Datenbank CREATE TABLE szeged_weather ( formatted_date TEXT, summary TEXT, precip_type TEXT, temperature_c FLOAT, apparent_temperature_c FLOAT, humidity FLOAT, wind_speed_kmh FLOAT, wind_bearing_deg FLOAT, visibility_km FLOAT, pressure_mb FLOAT, daily_summary TEXT ); Importieren Sie die CSV-Datei In PostgreSQL: COPY szeged_weather FROM '/path/to/weatherHistory.csv' DELIMITER ',' CSV HEADER; oder in MySQL: LOAD DATA INFILE '/path/to/weatherHistory.csv' INTO TABLE szeged_weather FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS; Vergewissern Sie sich, dass Ihre Datenbank so konfiguriert ist, dass der Import von Dateien möglich ist. Schritt-für-Schritt: Analysieren der Wetterdaten in SQL Beginnen Sie mit der Erkundung der Daten Bevor Sie mit der Analyse beginnen, ist es hilfreich zu verstehen, mit welcher Art von Daten Sie arbeiten. Sehen wir uns ein paar Zeilen aus dem Datensatz an. SQL-Abfrage SELECT * FROM szeged_weather LIMIT 5; Beispielhafte Ausgabe formatted_datesummaryprecip_typetemperature_capparent_temperature_chumiditywind_speed_kmhwind_bearing_degvisibility_kmpressure_mbdaily_summary 2016-09-01 00:00:00Partly Cloudyrain21.121.00.8913.02309.51012.3Partly cloudy throughout the day 2016-09-01 01:00:00Mostly Cloudyrain20.720.60.9211.32409.41012.1Partly cloudy throughout the day 2016-09-01 02:00:00Overcastrain20.320.20.9310.72459.21011.9Partly cloudy throughout the day 2016-09-01 03:00:00Overcastrain19.919.80.949.92509.01011.7Partly cloudy throughout the day 2016-09-01 04:00:00Mostly Cloudyrain19.519.40.959.32558.91011.6Partly cloudy throughout the day Wie das funktioniert SELECT * gibt alle Spalten zurück - nützlich für einen ersten Überblick. LIMIT 5 gibt nur die ersten 5 Zeilen zurück. So bleibt die Ausgabe überschaubar und die Datenbank wird nicht überfrachtet. Was Sie gerade geübt haben Vorschau auf die Datenstruktur Scannen der verfügbaren Spalten Bestätigen von Datenformat und -typen 🔗 Neu in SQL? Der Kurs SQL für Anfänger auf LearnSQL.de führt Sie interaktiv durch diese ersten Schritte - perfekt, wenn Sie gerade erst anfangen. Was das für Sie bedeutet Sie werden Spalten wie formatted_date, temperature_c, wind_speed_kmh und summary sehen. So erhalten Sie einen Überblick über die Möglichkeiten - und darüber, welche Felder Sie später filtern oder gruppieren können. Wie hoch ist die Durchschnittstemperatur in Szeged? Beginnen wir mit etwas Einfachem: der Durchschnittstemperatur im gesamten Datensatz. SQL-Abfrage SELECT ROUND(AVG(temperature_c), 1) AS avg_temp FROM szeged_weather; Beispielhafte Ausgabe avg_temp 14.6 Wie das funktioniert AVG() errechnet den Durchschnittswert. ROUND(..., 1) macht ihn leichter lesbar, indem nur eine Dezimalstelle angezeigt wird. Was Sie gerade geübt haben Grundlegende Aggregation mit AVG() Formatierung numerischer Ausgaben Aus Rohdaten eine übersichtliche Zahl ermitteln 🔗 Möchten Sie SQL-Funktionen beherrschen? Sehen Sie sich den Kurs Standard-SQL-Funktionen auf LearnSQL.de - er behandelt AVG(), SUM(), MIN(), MAX() und mehr, mit praktischen Übungen und echten Anwendungsfällen Was das für Sie bedeutet Das Ergebnis zeigt Ihnen die durchschnittliche Tagestemperatur in Szeged über den gesamten Zeitraum von 10 Jahren. Dies ist als Referenzpunkt nützlich - später können Sie bestimmte Monate oder Tage mit dieser Basislinie vergleichen. Welcher Monat ist der wärmste in Szeged? Sie wünschen sich warme, sonnige Tage - vielleicht, um die lokalen Märkte zu besuchen, am Fluss spazieren zu gehen oder einfach keinen Mantel einzupacken. Lassen Sie uns herausfinden, welcher Monat die höchste Durchschnittstemperatur in Szeged hat. SQL-Abfrage SELECT EXTRACT(MONTH FROM formatted_date) AS month, ROUND(AVG(temperature_c), 1) AS avg_temp FROM szeged_weather GROUP BY month ORDER BY month; Beispiel-Ausgabe monthavg_temp 10.4 22.6 37.9 413.5 518.6 622.3 724.9 824.4 919.1 1013.0 116.7 121.5 Wie das funktioniert EXTRACT(MONTH FROM ...) zieht den Monat aus jedem Datum. AVG(temperature_c) Berechnet die durchschnittliche monatliche Temperatur. ROUND(..., 1) formatiert sie auf eine Dezimalstelle. GROUP BY und ORDER BY strukturiert die Ergebnisse für einen einfachen Vergleich. Was Sie gerade geübt haben Aggregation mit AVG() Arbeiten mit Datumsteilen mit EXTRACT() Abfrageergebnisse gruppieren und sortieren 📘 Möchten Sie mehr strukturierte Übungen? Versuchen Sie die SQL Gruppe BY Praxis Kurs auf LearnSQL.de. Dieser Kurs für Einsteiger konzentriert sich auf die Verwendung von GROUP BY mit Aggregatfunktionen wie AVG(), SUM(), MIN() und COUNT() in verschiedenen Szenarien und Datensätzen. Er ist perfekt geeignet, um das gerade Geübte in einem interaktiven Format zu festigen. Was das für Sie bedeutet Der Juli ist der wärmste Monat in Szeged, der August liegt dicht dahinter. Mai und September sind mild und eignen sich gut für diejenigen, die angenehmes Wetter bevorzugen. Vermeiden Sie die Monate Januar bis März, wenn Sie auf warme Tage hoffen. Was sind die häufigsten Wettertypen? Schauen wir uns an, welche Art von Wetter Sie am wahrscheinlichsten erleben werden, basierend auf der Zusammenfassungsspalte. SQL-Abfrage SELECT summary, COUNT(*) AS occurrences FROM szeged_weather GROUP BY summary ORDER BY occurrences DESC LIMIT 10; Beispielhafte Ausgabe summaryoccurrences Partly Cloudy5200 Mostly Cloudy4300 Clear3800 Overcast3100 Foggy1900 Breezy and Partly Cloudy1200 Breezy and Mostly Cloudy1100 Humid and Mostly Cloudy950 Dangerously Windy and Partly Cloudy850 Dry and Mostly Cloudy800 Wie das funktioniert COUNT(*) listet auf, wie oft jede Zusammenfassung erscheint. GROUP BY Zusammenfassung gruppiert identische Werte. ORDER BY ... DESC und LIMIT helfen, sich auf die 10 wichtigsten Wettertypen zu konzentrieren. Was Sie gerade geübt haben Häufigkeitsanalyse mit COUNT(*) Sortieren absteigender Ergebnisse Begrenzung der Ausgabe mit LIMIT Was bedeutet das für Sie? "Teilweise bewölkt" ist sehr häufig - Sie können also mit einem unbeständigen Himmel rechnen. Wenn Ihr perfekter Urlaub beständigen Sonnenschein erfordert, prüfen Sie, wie oft "klar" angezeigt wird. Wie oft regnet es pro Monat? Warmes Wetter ist toll - aber nicht, wenn es ständig regnet. Lassen Sie uns herausfinden, wie oft es in Szeged jeden Monat regnet - nicht nur die Gesamtregenmenge, sondern auch die Anzahl der Stunden, in denen es normalerweise regnet. Jede Zeile in diesem Datensatz steht für eine Stunde Wetter. Wenn wir also den prozentualen Anteil des Regens berechnen, beantworten wir die Frage : "In wie vielen Stunden eines bestimmten Monats hat es geregnet?" SQL-Abfrage SELECT EXTRACT(MONTH FROM formatted_date) AS month, ROUND( SUM(CASE WHEN LOWER(summary) LIKE '%rain%' THEN 1 ELSE 0 END) * 100.0 / COUNT(*), 1 ) AS percent_rainy FROM szeged_weather GROUP BY month ORDER BY month; Beispielhafte Ausgabe monthpercent_rainy 112.8 210.2 315.3 418.1 521.5 625.6 719.2 816.8 920.4 1017.7 1114.9 1213.3 Wie das funktioniert EXTRACT(MONTH FROM formatted_date) liefert uns die Monatsnummer (1-12) LOWER(summary) stellt sicher, dass wir Wörter wie "Regen" oder "rain" finden CASE WHEN ... THEN 1 ELSE 0 END prüft jede Zeile: Wenn sie "Regen" enthält → zurückgeben 1 Wenn nicht → zurückgeben 0 SUM(...) addiert alle 1en - das ist die Anzahl der Regenstunden in diesem Monat COUNT(*) ergibt die Gesamtzahl der Stunden in diesem Monat Wir dividieren, multiplizieren mit 100 und runden das Ergebnis, um einen sauberen Prozentsatz zu erhalten. Was Sie gerade geübt haben EXTRACT() verwenden, um Daten nach Monat zu gruppieren Anwenden eines bedingten Zählers mit CASE WHEN darin SUM() Unterscheidung von Groß- und Kleinschreibung bei der Textsuche mit LOWER() Berechnen von Prozentsätzen aus gruppierten Daten Formatieren von Zahlen mit ROUND() 📘 Möchten Sie diese Fähigkeiten weiter vertiefen? Sehen Sie sich den Erstellen einfacher SQL-Berichte Kurs auf LearnSQL.de. Dieser interaktive Kurs behandelt die Verwendung von Aggregatfunktionen (AVG(), COUNT(), SUM()), die Klassifizierung von Daten mit CASE WHEN und die Erstellung einfacher Berichte mit GROUP BY. Der Kurs ist anfängerfreundlich und enthält reale Szenarien und über 90 praktische Übungen, um das Gelernte zu festigen. Was das für Sie bedeutet Wenn Sie einen Urlaub planen, können Sie sich so ein genaues Bild machen: Im Juni besteht eine höhere Regenwahrscheinlichkeit - etwa 25 % aller Stunden. Der August ist sicherer mit weniger Regenstunden Verwenden Sie diesen Ansatz auch bei anderen Bedingungen - Schnee, Nebel oder Sonnenschein. Es genügt, ein Wort in der Klausel LIKE zu ändern. An welchen Tagen war es kalt und windig? Einige Wetterbedingungen tauchen in den monatlichen Durchschnittswerten nicht auf. Lassen Sie uns Tage finden, an denen es sowohl kalt als auch windig war - Bedingungen, die den Aufenthalt im Freien unangenehm machen. SQL-Abfrage SELECT formatted_date, temperature_c, wind_speed_kmh FROM szeged_weather WHERE temperature_c < 5 AND wind_speed_kmh > 30 ORDER BY temperature_c; Beispielhafte Ausgabe formatted_datetemperature_cwind_speed_kmh 2015-01-07 05:00:00-6.434.2 2013-12-01 03:00:00-3.831.7 2014-02-12 08:00:00-2.536.0 2016-01-19 04:00:000.932.5 2012-11-28 01:00:004.233.1 Wie funktioniert das? WHERE filtert Zeilen, die beide Bedingungen erfüllen: kalt und windig. ORDER BY temperature_c listet sie vom kältesten aufwärts auf. Was Sie gerade geübt haben Mehrere Bedingungen in einem Filter Logische Operatoren (AND) Sortieren nach bestimmten Spalten Was das für Sie bedeutet Diese Tage sind selten, aber hart. Die meisten fallen zwischen November und März. Das spricht dafür, dass Szeged nicht ideal für Winterreisen ist. Aufgabe: Was war die heißeste jemals aufgezeichnete Temperatur? Hier ist die Gelegenheit, das Gelernte anzuwenden. Kannst du die wärmste Stunde im gesamten Szeged-Datensatz finden? SQL-Aufgabe Du brauchst: MAX(temperature_c) den höchsten aufgezeichneten Wert zu finden ORDER BY temperature_c DESC die Daten zu sortieren LIMIT 1 nur die wärmste Stunde zurückgeben oder eine Unterabfrage verwenden, um sowohl die Temperatur als auch das Datum des Ereignisses zurückzugeben Die Abfrage überlassen wir Ihnen. Probieren Sie es aus und finden Sie heraus, welche Art von Sommer-Extremen Szeged erlebt hat! Probieren Sie es mit anderen Städten Und das Beste daran? Diese Abfragen funktionieren überall. Ganz gleich, ob Sie sich für den windigsten Monat in Warschau oder die sonnigste Jahreszeit in Sydney interessieren, laden Sie einfach einen historischen Wetterdatensatz in SQL und beginnen Sie zu forschen. Sie üben nicht nur, Sie entdecken auch. Echte Daten. Echte Fragen. Echte Antworten. Und vielleicht sogar Ihren nächsten Urlaubsort. Möchten Sie Ihre SQL-Kenntnisse weiter vertiefen? LearnSQL.de bietet praktische, interaktive Kurse, in denen Sie SQL in Ihrem Browser schreiben und ausführen. Beginnen Sie mit dem KursSQL für Anfänger und bauen Sie von dort aus weiter auf. Tags: Datenanalyse