it-praxisportal/courses/sql/12_window_functions_over_partition
2026-09-12 13:26:06 +02:00
..
aufgabe.sql Vollständige Umsetzung von Phase A bis C: (1) SQL & Data Analytics Master (16 Module), (2) HTML5 & Modern CSS3 (16 Module) und (3) Go Cloud Microservices (16 Module). Plattform umfasst nun 131 Module über 7 Sprachen 2026-08-30 13:10:38 +02:00
index.html Branding-Update für it-praxisportal.de: Neuer Hero-Bereich, SVG-Favicon, OpenGraph-Metadaten und Plattform-Titel 2026-09-12 13:26:06 +02:00
musterloesung.sql Vollständige Umsetzung von Phase A bis C: (1) SQL & Data Analytics Master (16 Module), (2) HTML5 & Modern CSS3 (16 Module) und (3) Go Cloud Microservices (16 Module). Plattform umfasst nun 131 Module über 7 Sprachen 2026-08-30 13:10:38 +02:00
README.md Vollständige Umsetzung von Phase A bis C: (1) SQL & Data Analytics Master (16 Module), (2) HTML5 & Modern CSS3 (16 Module) und (3) Go Cloud Microservices (16 Module). Plattform umfasst nun 131 Module über 7 Sprachen 2026-08-30 13:10:38 +02:00
test_aufgabe.sql Vollständige Umsetzung von Phase A bis C: (1) SQL & Data Analytics Master (16 Module), (2) HTML5 & Modern CSS3 (16 Module) und (3) Go Cloud Microservices (16 Module). Plattform umfasst nun 131 Module über 7 Sprachen 2026-08-30 13:10:38 +02:00

SQL 12: Window Functions (ROW_NUMBER, OVER, PARTITION BY, LAG) 🪟📊

Willkommen zu Modul 12 (Lehrpfad 3: Aggregationen, CTEs & Window Functions)! Window Functions sind der Goldstandard moderner SQL-Analytik in BigQuery, Snowflake, PostgreSQL und SQLite. Sie erlauben tiefgehende Berechnungen über benachbarte Zeilen, ohne den Detailgrad der Datensätze zu vernichten.


🎯 Lernziele

  1. Die OVER()-Klausel: Definieren von Analyse-Fenstern mit PARTITION BY und ORDER BY.
  2. Ranking-Funktionen: Verstehen der Unterschiede zwischen ROW_NUMBER(), RANK() und DENSE_RANK().
  3. Offset-Navigation (LAG & LEAD): Berechnen von Periodenvergleichen, Wachstumsraten und Deltas ohne Self-Joins.
  4. Kumulierte Summen (Running Totals): Fortlaufende Kontostände und Allzeit-Umsätze berechnen.
  5. Gleitende Durchschnitte (Moving Averages): Glätten von Zeitreihen über ROWS BETWEEN n PRECEDING AND CURRENT ROW.

💡 Syntax im Detail

-- Fortlaufende Summe je Kunde
SELECT 
    kunde_id,
    bestell_datum,
    betrag,
    SUM(betrag) OVER (
        PARTITION BY kunde_id
        ORDER BY bestell_datum
        ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
    ) AS kumulierter_umsatz
FROM bestellungen;

🚀 Aufgabenstellung (aufgabe.sql)

  1. TODO 1: Ranking-Vergleich – Berechne für Produkte innerhalb jeder Kategorie ROW_NUMBER(), RANK() und DENSE_RANK().
  2. TODO 2: Time-Series Analyse mit LAG – Berechne Vortagesumsatz, absolutes Delta und prozentuales Wachstum.
  3. TODO 3: Running Total – Ermittle den kumulierten Allzeitumsatz je Kunde.
  4. TODO 4: Moving Average – Berechne den 3-Tage gleitenden Durchschnitt über die täglichen Gesamtumsätze.

🧪 Tests ausführen

Validierung erfolgt über test_aufgabe.sql.