Meest onderscheiden atleet per regio
Je doel in deze oefening is om de meest onderscheiden atleet per regio te tonen. Om dit rapport op te zetten, maak je gebruik van de windowfunctie ROW_NUMBER(), die elke rij een oplopend geheel getal geeft: de eerste rij is 1, de tweede is 2, enzovoort.
De syntax voor deze windowfunctie is ROW_NUMBER() OVER (PARTITION BY field ORDER BY field). Let op dat er geen argument in de initiële functie staat.
Als alles goed is opgezet, geeft row_num = 1 de meest onderscheiden atleet binnen die regio aan. Als meerdere atleten dezelfde totaalstand hebben, kan een van die gelijkstaande atleten als hoogste resultaat verschijnen. Let op dat je een windowberekening niet binnen een HAVING- of WHERE-clausule kunt gebruiken, dus je moet een subquery gebruiken om te filteren.
Raadpleeg gerust het E:R-diagram. We gebruiken summer_games_clean om null-afhandeling te vermijden.
Deze oefening maakt deel uit van de cursus
Rapporteren in SQL
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
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 ____;