Mest dekorerad idrottare per region
Målet med den här övningen är att visa den mest dekorerade idrottaren per region. För att sätta upp den här rapporten behöver du använda fönsterfunktionen ROW_NUMBER(), som numrerar varje rad som ett ökande heltal, där den första raden är 1, den andra 2, och så vidare.
Syntaxen för den här fönsterfunktionen är ROW_NUMBER() OVER (PARTITION BY field ORDER BY field). Lägg märke till att det inte finns något argument inuti själva funktionen.
När allt är korrekt inställt representerar row_num = 1 den mest dekorerade idrottaren inom den regionen. Om flera idrottare har samma totalsumma kan vilken som helst av de jämnställda idrottarna visas som toppresultat. Observera att du inte kan använda en fönsterberäkning inuti en HAVING- eller WHERE-sats, så du behöver använda en underfråga för att filtrera.
Få gärna referera till E:R-diagrammet. Vi använder summer_games_clean för att undvika hantering av null-värden.
Den här övningen är en del av kursen
Rapportering i SQL
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
SELECT
-- Query region, athlete_name, and total gold medals
____,
____ AS athlete_name,
____ AS total_golds,
-- Assign a regional rank to each athlete
____ AS row_num
FROM ____ AS s
JOIN ____ AS a
ON ____
JOIN ____ AS c
ON ____
GROUP BY ____;