Aggregera innan du kopplar tabeller
Du har en lista med följande uppgifter:
- Afrikanska idrottare som deltagit i tidigare OS
- BNP per capita per land
- Befolkning per år
För att förenkla har den årliga demografin (BNP och befolkning) delats in i kategorierna låg, medel och hög. Din uppgift är att jämföra varje afrikanskt lands BNP, befolkning och antal idrottare.
Du vill att det slutliga resultatet ska ha en rad per land och år. Eftersom tabellen athletes har en annan granularitet (idrottare-evenemang) än tabellen demographics_rank (land-år), behöver du först aggregera athletes-tabellen innan du kopplar den till BNP- och befolkningsdata.
Den här övningen är en del av kursen
Förbättra frågeprestanda i PostgreSQL
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
-- Count the number of athletes by country
SELECT country_code
, year
, ___(___) AS no_athletes
FROM athletes
GROUP BY ___, ___;