LoslegenKostenlos loslegen

OVER – immer der Rangfolge nach

Mit Fensterfunktionen kannst du eine Rangfolge (RANK) von Informationen anhand einer beliebigen Variable erstellen, die du zum Sortieren deiner Daten verwenden möchtest. Beim Definieren musst du angeben, welche Spalte/Berechnung du zum Erstellen deiner Rangfolge verwenden möchtest. Dazu fügst du eine ORDER BY-Klausel in die OVER()-Klausel ein. Nachfolgend ein Beispiel:

SELECT 

    id,

    RANK() OVER(ORDER BY home_goal) AS rank

FROM match;

In dieser Übung erstellst du einen Datensatz mit Spielen, die danach geordnet sind, welche Ligen im Durchschnitt die meisten Tore in einem Spiel schießen.

Diese Übung ist Teil des Kurses

Datenbearbeitung in SQL

Kurs anzeigen

Anleitung zur Übung

  • Wähle den Namen der Liga und die durchschnittliche Gesamtzahl der geschossenen Tore von league und match mit SELECT aus.
  • Schließe die Fensterfunktion ab, damit sie die Rangfolge der durchschnittlichen Tore in allen Ligen in der Datenbank über RANK() berechnet.
  • Ordne den Rang nach (OVER) der durchschnittlichen Gesamtzahl der Heim- und Gasttore.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

SELECT 
	-- Select the league name and average goals scored
	___ AS league,
    ___(___ + ___.away_goal) AS avg_goals,
    -- Rank each league over the average goals
    ___ ___(___ ___ AVG(___.home_goal + ___)) AS league_rank
FROM league AS l
LEFT JOIN match AS m 
ON l.id = m.country_id
WHERE m.season = '2011/2012'
GROUP BY l.name
-- Order the query by the rank you created
ORDER BY ___;
Code bearbeiten und ausführen