Filteren naar vrieskou met een subquery
Van de eerste Olympische Spelen in 1904 tot en met de Spelen van 2016 hebben Afrikaanse landen 7.845 atleten afgevaardigd. Maar slechts 55 van die atleten deden mee aan de Winterspelen.
Eén kwart van Afrika wordt bedekt door de Sahara en de niet-woestijngebieden hebben het hele jaar door warmte. Misschien beperkt dit gebrek aan koude en sneeuw de trainingsmogelijkheden voor Winter-Olympiërs.
Hier ga je klimaatgegevens verkennen om te zien of alle Afrikaanse landen winterse sportomstandigheden missen. De World Bank verzamelt gemiddelde temperaturen en neerslag per land. Maandelijkse en jaarlijkse 40-jaarsgemiddelden zijn al ingeladen, met temperatuur in graden Celsius (0 is vriespunt) en neerslag in millimeters.
Bekijk de klimaatgegevens en zoek naar landen die het hele jaar door onder het vriespunt blijven. Zijn er daarvan in Afrika?
Deze oefening maakt deel uit van de cursus
Queryprestaties verbeteren in PostgreSQL
Oefeninstructies
- Beperk je tot atleten die alleen aan de Winterspelen deelnamen, met de kolom
season. - Gebruik een subquery om alleen die landen uit de
oclimate-tabel te selecteren met een gemiddelde jaartemperatuur (temp_annual) onder het vriespunt (0 graden).- Selecteer de landcodes,
olympic_cc, uit deoclimate-tabel om decountry_codeuit deathletes_recent-tabel te filteren.
- Selecteer de landcodes,
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
-- Countries cold enough for snow year-round
SELECT country_code
, country
, COUNT (DISTINCT athlete_id) AS winter_athletes -- Athletes can compete in multiple events
FROM athletes
WHERE country_code IN (___ ___ ___ ___ WHERE temp_annual < 0)
AND ___ = 'Winter'
GROUP BY country_code, country;