PARTITION BY – Aufteilen nach einer Spalte
Mit der PARTITION BY-Klausel kannst du separate „Fenster“ auf der Grundlage von Spalten berechnen, in die du deine Ergebnisse unterteilen möchtest. Du kannst zum Beispiel eine einzelne Spalte erstellen, die einen Gesamtdurchschnitt der geschossenen Tore für jede Saison berechnet.
In dieser Übung erstellst du einen Datensatz mit Spielen von Legia Warszawa (Legia Warschau), der bestplatzierten Mannschaft in Polen, und vergleichst die Leistung in den einzelnen Spielen mit dem Gesamtdurchschnitt der Saison.
Wo siehst du mehr Ausreißer? Sind es die Heim- oder die Auswärtsspiele von Legia Warszawa?
Diese Übung ist Teil des Kurses
Datenbearbeitung in SQL
Anleitung zur Übung
- Vervollständige die beiden Fensterfunktionen, die die durchschnittliche Anzahl der Heim- und Auswärtstore berechnen. Unterteile die Fensterfunktionen nach Saison, um für jede Saison einen eigenen Durchschnitt zu berechnen.
- Filtere die Abfrage so, dass sie nur Spiele von Legia Warszawamit der
id = 8673enthält.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
SELECT
date,
season,
home_goal,
away_goal,
CASE WHEN hometeam_id = 8673 THEN 'home'
ELSE 'away' END AS warsaw_location,
-- Calculate separately the average home and away goals scored, partitioned by season
___(___) ___(___ ___ ___) AS season_homeavg,
___(___) ___(___ ___ ___) AS season_awayavg
FROM match
-- Filter the data set for Legia Warszawa (id 8673) matches only
WHERE
___ = ___
OR ___ = ___
ORDER BY (home_goal + away_goal) DESC;