Get startedGet started for free

Aggregate before joining tables

You have a list of the following items:

  • African athletes participating in past Olympics
  • Country GDP per capita
  • Population by year

For simplification, the annual demographics (GDP and population) have been grouped into low, medium, and high categories. Your job is to compare each African country's GDP, population, and athlete count.

You want the final answer to have one row per country, per year. Because the athletes table is on a different grain (athlete-event) than the demographics_rank table (country-year), you will first aggregate the athletes table before joining it to the GDP and population data.

This exercise is part of the course

Improving Query Performance in PostgreSQL

View Course

Hands-on interactive exercise

Have a go at this exercise by completing this sample code.

-- Count the number of athletes by country
SELECT country_code
  , year
  , ___(___) AS no_athletes
FROM athletes
GROUP BY ___, ___;
Edit and Run Code