LoslegenKostenlos loslegen

Rangliste mit Gewinnenden aus verschiedenen Ländern

In der letzten Aufgabe hast du mit RANK eine Rangliste von einer Gruppe von Athleten und Athletinnen erstellt. In echten Daten hast du es allerdings oft mit mehreren Gruppen zu tun. Wenn du deine Daten nicht aufteilst, beeinflussen die Werte einer Gruppe die Rangfolgen der anderen.

Auch wenn RANK bei gleichen Werten Zahlen überspringt, sollten bei der Rangvergabe eigentlich keine Zahlen ausgelassen werden. Wenn zwei Länder sich den zweiten Platz teilen, würde man das nächste Land in der Regel als drittplatziert erachten.

Diese Übung ist Teil des Kurses

PostgreSQL: Zusammenfassende Statistiken und Fensterfunktionen

Kurs anzeigen

Anleitung zur Übung

  • Ordne die Teilnehmenden jedes Landes nach der Anzahl der gewonnenen Medaillen – je mehr Medaillen, desto höher der Rang – und lasse bei gleichen Werten keine Rangnummer aus.

Interaktive Übung

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

WITH Athlete_Medals AS (
  SELECT
    Country, Athlete, COUNT(*) AS Medals
  FROM Summer_Medals
  WHERE
    Country IN ('JPN', 'KOR')
    AND Year >= 2000
  GROUP BY Country, Athlete
  HAVING COUNT(*) > 1)

SELECT
  Country,
  -- Rank athletes in each country by the medals they've won
  ___,
  ___ OVER (PARTITION BY ___
                ORDER BY Medals DESC) AS Rank_N
FROM Athlete_Medals
ORDER BY Country ASC, RANK_N ASC;
Code bearbeiten und ausführen