Das Maximum an Medaillen für chinesische Athleten verschieben
Mit Frames kannst du vorwärts oder rückwärts "spicken", ohne vorher die relativen Abruffunktionen LAG
und LEAD
zu verwenden, um die Werte der vorherigen Zeilen in die aktuelle Zeile zu holen.
Diese Übung ist Teil des Kurses
PostgreSQL Übersichtsstatistiken und Fensterfunktionen
Anleitung zur Übung
- Gib die Athleten, die gewonnenen Medaillen und die maximal gewonnenen Medaillen zurück, wobei nur die letzten beiden und die aktuellen Athleten verglichen werden, geordnet nach den Namen der Athleten in alphabetischer Reihenfolge.
Interaktive Übung zum Anfassen
Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.
WITH Chinese_Medals AS (
SELECT
Athlete, COUNT(*) AS Medals
FROM Summer_Medals
WHERE
Country = 'CHN' AND Medal = 'Gold'
AND Year >= 2000
GROUP BY Athlete)
SELECT
-- Select the athletes and the medals they've earned
___,
___,
-- Get the max of the last two and current rows' medals
___ OVER (ORDER BY ___ ASC
ROWS BETWEEN ___
AND ___) AS Max_Medals
FROM Chinese_Medals
ORDER BY Athlete ASC;