OVER – das Spiel ist vorbei
Mit der Klausel OVER() kannst du eine Aggregatfunktion auf einen Datensatz anwenden, ähnlich wie bei Unterabfragen in SELECT. Die Klausel OVER() birgt gegenüber Unterabfragen in SELECT ein paar großartige Vorteile – deine Abfragen laufen schneller und die Klausel OVER() hat eine Menge zusätzlicher Funktionen und Klauseln, die du nutzen kannst. Die schauen wir uns später in diesem Kapitel an.
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
IDdes Spiels,namedes Landes,season,home_goalundaway_goalaus den Tabellenmatchundcountryaus. - Vervollständige die Abfrage, die die durchschnittliche Anzahl der insgesamt geschossenen 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 match 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;