HackerRank: [SQL Basic Join] (3/8) AVERAGE POPULATION OF EACH CONTINENT | floor, avg & inner join in SQL

I started studying SQL from a very famous site - HackerRank. Here I will try to provide multiple approaches & solutions to the same problem. It will help you learn and understand SQL in a better way.

Please make use of my blog posts for learning purpose only and feel free to ask your questions in the comment box below in case of any doubt.

Recommended SQL Courses:

SQL Problem Statement:

Given the CITY and COUNTRY tables, query the names of all the continents (COUNTRY.Continent) and their respective average city populations (CITY.Population) rounded down to the nearest integer.

Note: CITY.CountryCode and COUNTRY.Code are matching key columns.

Input Format:

The CITY and COUNTRY tables are described as follows:

Solution: Using INNER JOIN OR JOIN (MySQL Query):

`SELECT COUNTRY.CONTINENT, FLOOR(AVG(CITY.POPULATION))FROM COUNTRYJOIN CITYON COUNTRY.CODE = CITY.COUNTRYCODEGROUP BY COUNTRY.CONTINENTORDER BY COUNTRY.CONTINENT;`

NOTE:
1. FLOOR function is used to round down the decimal number to the nearest integer (smaller than or equal to the input number.)
Eg. FLOOR(2.7) will return 2

2. AVG is an aggregation function used to calculate the average of the values of all the records in the specified column name passed to the function.

3. JOIN and INNER JOIN are the same in SQL. It returns the records that have matching values in both tables.

Expected Output:

`Africa 274439Asia 693038Europe 175138Oceania 109189South America 147435`

--------------------------------------------------------------------------------