Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| de:modul:m290_guko:learningunits:lu10:theorie:a_einfuehrung [2026/08/13 16:06] – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | de:modul:m290_guko:learningunits:lu10:theorie:a_einfuehrung [2026/08/13 16:06] (aktuell) – ↷ Links angepasst, weil Seiten im Wiki verschoben wurden 216.73.216.62 | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ====== LU10a: Aggregatfunktionen Einführung ====== | ||
| + | ===== 0. Datensätze ===== | ||
| + | Wir arbeiten mit **realen Daten** aus unterschiedlichen Bereichen. Das macht die Übungen **praxisnah**: | ||
| + | Die drei Datensätze sind aus unterschiedlichen Sparten: | ||
| + | * **Einbrüche** (Kanton Zürich) – Datenbank: '' | ||
| + | * **Raumfahrt (1957–2022)** – Datenbank: '' | ||
| + | * **Musiktrends (YouTube Top Songs 2025)** – Datenbank: '' | ||
| + | |||
| + | |||
| + | === Einbrüche (Kanton Zürich) === | ||
| + | |||
| + | <WRAP center> | ||
| + | {{de: | ||
| + | </ | ||
| + | ((Bildquelle: | ||
| + | |||
| + | |||
| + | * **Zeitraum: | ||
| + | * **Quelle:** Kantonspolizei ZH | ||
| + | * **Lizenz:** CC0 | ||
| + | * **Granularität: | ||
| + | |||
| + | <WRAP box center round 80%> | ||
| + | **Was steckt drin? (Auszug Felder)** | ||
| + | ^ Feld ^ Bedeutung ^ | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | </ | ||
| + | |||
| + | **Beispielfragen: | ||
| + | * Wie viele Einbrüche gab es **letztes Jahr** in **meiner Gemeinde**? | ||
| + | * Welche Gemeinden haben im **Durchschnitt** die **höchsten Raten**? | ||
| + | |||
| + | === Space Missions === | ||
| + | |||
| + | <WRAP center> | ||
| + | {{de: | ||
| + | </ | ||
| + | ((Bildquelle: | ||
| + | |||
| + | |||
| + | * **Zeitraum: | ||
| + | * **Quelle:** Scrape von nextspaceflight.com | ||
| + | * **Granularität: | ||
| + | |||
| + | <WRAP box center round 80%> | ||
| + | **Was steckt drin? (Auszug Felder)** | ||
| + | ^ Feld ^ Bedeutung ^ | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | </ | ||
| + | |||
| + | **Beispielfragen: | ||
| + | * Wie viele Starts hat **SpaceX** im Vergleich zu **staatlichen Akteuren** bis **2022**? | ||
| + | * Welche **Jahre** waren **startstark**, | ||
| + | * Welche **aktiven Raketen** haben die **meisten erfolgreichen** Starts? | ||
| + | |||
| + | === YouTube Top 100 (2025) === | ||
| + | <WRAP center> | ||
| + | {{de: | ||
| + | </ | ||
| + | ((Bildquelle: | ||
| + | |||
| + | |||
| + | * **Stichtag: | ||
| + | * **Umfang:** 100 Songs | ||
| + | * **Granularität: | ||
| + | |||
| + | <WRAP box center round 80%> | ||
| + | **Was steckt drin? (Auszug Felder)** | ||
| + | ^ Feld ^ Bedeutung ^ | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | </ | ||
| + | |||
| + | **Beispielfragen: | ||
| + | * Welche sind die **meistgespielten Songs 2025** und welche **Channels** sind **besonders erfolgreich**? | ||
| + | * Gibt es einen **Zusammenhang** zwischen **Songdauer** und **Anzahl Views**? | ||
| + | |||
| + | ==== Setup (Download & Import) ==== | ||
| + | |||
| + | Laden Sie die vorbereiteten Datensätze herunter und importieren Sie sie: | ||
| + | |||
| + | {{ de: | ||
| + | |||
| + | |||
| + | {{ de: | ||
| + | // | ||
| + | |||
| + | |||
| + | <WRAP tip center round 70%> | ||
| + | **Schema wählen (wichtig): | ||
| + | Entweder im Editor-Dropdown das Schema wählen **oder** mit '' | ||
| + | <code sql> | ||
| + | -- Beispiele: | ||
| + | USE spacemission; | ||
| + | -- USE zh_einbrueche; | ||
| + | -- USE youtube_top_100_songs_2025; | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== 1. Was sind Aggregatfunktionen – und warum braucht man sie? ===== | ||
| + | |||
| + | <WRAP round 80% box center> | ||
| + | Aggregatfunktionen fassen **viele Zeilen** zu **Kennzahlen** zusammen (z. B. Anzahl, Summe, Durchschnitt, | ||
| + | Sie sind die Grundlage für **Berichte, Dashboards, BI-Auswertungen((Business Intelligence: | ||
| + | </ | ||
| + | |||
| + | ==== 1.1 Die wichtigsten Aggregatfunktionen ==== | ||
| + | <WRAP round 80% box center> | ||
| + | ^ Funktion ^ Zweck ^ NULL-Verhalten ^ | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | </ | ||
| + | |||
| + | <WRAP round 80% box center> | ||
| + | **Syntax (allgemein)** | ||
| + | <code sql> | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== 2. Einfache Aggregationen ===== | ||
| + | |||
| + | === 2.1 COUNT – Wie viele Datensätze sind es? === | ||
| + | <WRAP round 80% box center> | ||
| + | **Frage:** Wie viele Missionen befinden sich im Datensatz? | ||
| + | <code sql> | ||
| + | SELECT COUNT(*) AS anzahl_missionen | ||
| + | FROM missions; | ||
| + | </ | ||
| + | **Was passiert?** '' | ||
| + | \\ | ||
| + | <WRAP center> | ||
| + | {{de: | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | === 2.2 SUM – Summe bilden === | ||
| + | <WRAP round 80% box center> | ||
| + | **Frage:** Wie viele **Views** haben alle 100 YouTube-Songs zusammen? | ||
| + | <code sql> | ||
| + | SELECT SUM(view_count) AS views_total | ||
| + | FROM youtube_top_100_songs_2025; | ||
| + | </ | ||
| + | **Was passiert?** '' | ||
| + | \\ | ||
| + | <WRAP center> | ||
| + | {{de: | ||
| + | //Ergebnis: 2025 haben die 100 meistgeklickten YouTube-Songs insgesamt über 10 Milliarden Views erzielt.// | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | === 2.3 AVG – Durchschnitt berechnen === | ||
| + | <WRAP round 80% box center> | ||
| + | **Frage:** Wie lang ist ein Song **im Durchschnitt**? | ||
| + | <code sql> | ||
| + | SELECT AVG(duration) AS avg_duration | ||
| + | FROM youtube_top_100_songs_2025; | ||
| + | </ | ||
| + | **Was passiert?** '' | ||
| + | \\ | ||
| + | <WRAP center> | ||
| + | {{de: | ||
| + | //Ergebnis: 2025 haben die 100 meistgeklickten YouTube-Songs eine durchschnittliche Song-Dauer von 3 min 24s.// | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | === 2.4 MIN / MAX – Kleinster / Grösster Wert === | ||
| + | |||
| + | <WRAP round 80% box center> | ||
| + | **Fragen:** Längster Song? Kürzester Song? | ||
| + | <code sql> | ||
| + | -- Längster Song | ||
| + | SELECT MAX(duration) AS max_duration | ||
| + | FROM youtube_top_100_songs_2025; | ||
| + | |||
| + | -- Kürzester Song | ||
| + | SELECT MIN(duration) AS min_duration | ||
| + | FROM youtube_top_100_songs_2025; | ||
| + | </ | ||
| + | |||
| + | **Was passiert?** '' | ||
| + | \\ | ||
| + | <WRAP center> | ||
| + | {{de: | ||
| + | |||
| + | //Ergebnis: Der längste Song in der Tabelle ist " | ||
| + | </ | ||
| + | </ | ||