OVER – das Spiel ist vorbei
Mit der OVER()
Klausel kannst du eine Aggregatfunktion auf einen Datensatz anwenden, ähnlich wie bei Unterabfragen in SELECT
. Die OVER()
Klausel bietet erhebliche Vorteile gegenüber den Unterabfragen in SELECT
- nämlich, dass deine Abfragen schneller laufen, und die OVER()
Klausel hat eine Vielzahl zusätzlicher Funktionen und Klauseln, die du in sie einbinden kannst, die wir später in diesem Kapitel behandeln werden.
In dieser Übung überarbeitest du einige Abfragen aus den vorherigen Kapiteln mithilfe der OVER()
-Klausel.
Diese Übung ist Teil des Kurses
Datenbearbeitung in SQL
Anleitung zur Übung
- Wähle die Spiel-ID, den Ländernamen, die Saison sowie die Heim- und Auswärtstore aus den Tabellen
match
undcountry
aus. - Vervollständige die Abfrage, die die durchschnittliche Anzahl der insgesamt erzielten Tore berechnet und dann den Gesamtwert in jeder Zeile mithilfe einer Fensterfunktion einfügt.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
SELECT
-- Select the id, country name, season, home, and away goals
___,
c.___ AS country,
m.season,
___.home_goal,
___,
-- Use a window to include the aggregate average in each row
___(___.home_goal + ___) ___ AS overall_avg
FROM match AS m
LEFT JOIN country AS c ON m.country_id = c.id;