This tutorial looks at how we can use SELECT statements within SELECT statements to perform more complex queries.
name | continent | area | population | gdp |
---|---|---|---|---|
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'.
world(name, continent, area, population, gdp)
SELECT name FROM world WHERE population > (SELECT population FROM world WHERE name='Russia')
2、
Show the countries in Europe with a per capita GDP greater than 'United Kingdom'.
SELECT name FROM world WHERE gdp/population > (SELECT gdp/population FROM world WHERE name='United Kingdom') and continent='Europe'
3、 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
4、 Which country has a population that is more than Canada but less than Poland? Show the name and the population.
select name,population from world where population > (select population from world where name='Canada') and population <(select population from world where name='Poland') order by name
5、
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.
Decimal places
Percent symbol %
select name,CONCAT(ROUND(100*population/(select population from world where name='Germany')),'%') from world where continent='Europe'
select name from world where gdp > ALL(select gdp from world where gdp > 0 and continent='Europe')
7、 Find the largest country (by area) in each continent, show the continent , the name and the area :
SELECT continent, name, area FROM world x WHERE x.area >= ALL(SELECT y.area FROM world y WHERE y.continent=x.continent AND area>0)
8、 List each continent and the name of the country that comes first alphabetically.
select continent,name from world x where x.name=(select y.name from world y where y.continent=x.continent order by name limit 1)
9、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 name, continent, population FROM world x WHERE 25000000>=ALL (SELECT population FROM world y WHERE x.continent=y.continent AND population>0)
10、Some countries have populations more than three times that of any of their neighbours (in the same continent). Give the countries and continents.
select name,continent from world x where x.population/3 >= all(select population from world y where x.continent=y.continent and x.name!=y.name and y.population>0)