LoslegenKostenlos loslegen

Rangliste der Athleten aus mehreren Ländern

In der vorherigen Übung hast du RANK verwendet, um einer Gruppe von Sportlern eine Rangfolge zuzuweisen. In realen Daten findest du jedoch oft zahlreiche Gruppen innerhalb deiner Daten. Wenn du deine Daten nicht aufteilst, beeinflussen die Werte der einen Gruppe die Rangfolge der anderen.

Auch wenn RANK bei identischen Werten Zahlen überspringt, ist es die natürlichste Art, Rangfolgen zu vergeben, keine Zahlen zu überspringen. Wenn zwei Länder gleichauf auf dem zweiten Platz liegen, wird das Land nach ihnen von den meisten Menschen als drittes Land angesehen.

Diese Übung ist Teil des Kurses

PostgreSQL Übersichtsstatistiken und Fensterfunktionen

Kurs anzeigen

Anleitung zur Übung

  • Ordne die Athletinnen und Athleten jedes Landes nach der Anzahl der Medaillen, die sie gewonnen haben - je höher die Anzahl, desto höher der Rang - ohne Zahlen zu überspringen, wenn die Werte identisch sind.

Interaktive Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

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