SELECT within SELECT Tutorial
Afghanistan
Asia
652230
25500100
20343000000
Albania
Europe
28748
2831741
12960000000
Algeria
Africa
2381741
37100000
188681000000
Andorra
Europe
468
78115
3712000000
Angola
Africa
1246700
20609294
100990000000
...
1. List each country name where the population is larger than that of 'Russia'.s
SELECT name
FROM world
WHERE population > (SELECT population FROM world WHERE name = 'Russia')
Show the countries in Europe with a per capita GDP greater than 'United Kingdom'.
SELECT name
FROM world
WHERE continent = 'Europe'
AND GDP/population > (SELECT GDP/population
FROM world
WHERE name = 'United Kingdom')
List the name and continent of countries in the continents containing either Argentina or Australia. Order by name of the country.
SELECT name, continent
FROM world
WHERE continent IN ( SELECT continent
FROM world
WHERE name IN ('Argentina', 'Australia'))
ORDER BY name
Which country has a population that is more than United Kingdom but less than Germany? Show the name and the population.
SELECT name, population
FROM world
WHERE population > (SELECT population FROM world WHERE name = 'United Kingdom')
AND population < (SELECT population FROM world WHERE name = 'Germany')
Germany (population 80 million) has the largest population of the countries in Europe. Austria (population 8.5 million) has 11% of the population of Germany. Show the name and the population of each country in Europe. Show the population as a percentage of the population of Germany.The format should be Name, Percentage for example:
Albania
3%
Andorra
0%
Austria
11%
...
...
SELECT
name,
CONCAT(ROUND(100*population/(SELECT population
FROM world
WHERE name = 'Germany'),0),'%') AS percentage
FROM world
WHERE continent = 'Europe'
SQLZOO system error: error
SQLZOO system error: error
SELECT
name,
CONCAT(ROUND(CAST(population AS NUMERIC)/(SELECT CAST(population AS NUMERIC)
FROM world
WHERE name = 'Germany')*100,2),'%') AS percentage
FROM world
WHERE continent = 'Europe';
note: above code is in Postgres
Which countries have a GDP greater than every country in Europe? [Give the name only.] (Some countries may have NULL gdp values)
SELECT name
FROM world
WHERE gdp > ALL (SELECT gdp
FROM world
WHERE continent = 'Europe')
AND gdp IS NOT NULL
Find the largest country (by area) in each continent, show the continent, the name and the area:
SELECT continent, name, area
FROM world
WHERE area IN (SELECT MAX(area)
FROM world
WHERE area > 0
GROUP BY continent)
List each continent and the name of the country that comes first alphabetically.
SELECT continent, MIN(name) AS first_country
FROM world
GROUP BY continent
Find the continents where all countries have a population <= 25000000. Then find the names of the countries associated with these continents. Show name, continent and population.
SELECT a.name, a.continent, max_pop
FROM world a
JOIN (SELECT continent, MAX(population) as max_pop
FROM world GROUP BY continent) b
ON (a.continent = b.continent AND a.population = b.max_pop)
WHERE max_pop <= 25000000
Some countries have populations more than three times that of all of their neighbours (in the same continent). Give the countries and continents.
SELECT name, continent, population
FROM world w
JOIN
(SELECT t1.continent, t1.max_pop, t2.nd_max_pop
FROM (
SELECT continent, MAX(population) as max_pop
FROM world
WHERE population <> 0
GROUP BY continent) t1
JOIN
(SELECT continent, MAX(population) as nd_max_pop
FROM world WHERE name NOT IN (SELECT a.name
FROM world a
JOIN (SELECT continent, MAX(population) as max_pop
FROM world
WHERE population <> 0
GROUP BY continent) b
ON a.continent = b.continent AND a.population = b.max_pop)
AND population <> 0 GROUP BY continent) t2
ON t1.continent = t2.continent WHERE t1.max_pop/3 > t2.nd_max_pop) t3
ON w.continent = t3.continent AND w.population = t3.max_pop
Last updated
Was this helpful?