SQLZoo-SELECT within SELECT Tutorial

  1. List each country name where the population is larger than that of 'Russia'.
sql 复制代码
SELECT name FROM world
  WHERE population >
     (SELECT population FROM world
      WHERE name='Russia')
  1. Show the countries in Europe with a per capita GDP greater than 'United Kingdom'.
sql 复制代码
SELECT name FROM world
  WHERE continent = 'Europe' AND gdp/population >
     (SELECT gdp/population FROM world
      WHERE name='United Kingdom')
  1. List the name and continent of countries in the continents containing either Argentina or Australia. Order by name of the country.
sql 复制代码
SELECT name, continent
FROM world
WHERE continent IN (
    SELECT continent
    FROM world
    WHERE name IN ('Argentina', 'Australia')
)
ORDER BY name;
  1. Which country has a population that is more than United Kingdom but less than Germany? Show the name and the population.
sql 复制代码
SELECT name, population FROM world
  WHERE population > (
        SELECT population FROM world
        WHERE name = 'United Kingdom') AND population < (
        SELECT population FROM world
        WHERE name = 'Germany')
  1. 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:

name percentage
Albania 3%
Andorra 0%
Austria 11%
... ...
sql 复制代码
SELECT name,
 CONCAT(ROUND(100*population/(
      SELECT population FROM world
      WHERE name = 'Germany'),0),'%') AS percentage
  FROM world
  WHERE continent = 'Europe'
  1. Which countries have a GDP greater than every country in Europe? [Give the name only.] (Some countries may have NULL gdp values)
sql 复制代码
SELECT name FROM world
 WHERE gdp > (
      SELECT Max(gdp) FROM world
      WHERE continent = 'Europe')
  1. Find the largest country (by area) in each continent, show the continent , the name and the area:
sql 复制代码
SELECT continent, name, area FROM world x
  WHERE area >= ALL
    (SELECT area FROM world y
        WHERE y.continent=x.continent
          AND area>0)
  1. List each continent and the name of the country that comes first alphabetically.
sql 复制代码
SELECT continent, MIN(name) AS first_country
FROM world
GROUP BY continent
ORDER BY continent
  1. 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.
sql 复制代码
SELECT name, continent, population
FROM world
WHERE continent IN (
    SELECT continent
    FROM world
    GROUP BY continent
    HAVING MAX(population) <= 25000000)
  1. Some countries have populations more than three times that of all of their neighbours (in the same continent). Give the countries and continents.
sql 复制代码
SELECT c1.name AS country, c1.continent
FROM world c1
WHERE c1.population > ALL (
    SELECT 3 * c2.population
    FROM world c2
    WHERE c2.continent = c1.continent
      AND c2.name <> c1.name
);
相关推荐
庖丁解java3 分钟前
N个Utils
数据库
Mr. zhihao17 分钟前
SQL LEFT JOIN 与 WHERE 条件的隐藏坑
数据库·sql
2301_7930868725 分钟前
Redis 04 Reactor
数据库·redis·缓存
Sais_Z41 分钟前
ClickHouse的学习与了解
数据库·clickhouse
代码的余温1 小时前
MySQL性能优化:10个关键参数调整指南
数据库·mysql·性能优化
silver98862 小时前
sql链接的url中serverTimezone的作用
数据库·sql
tanxiaomi2 小时前
数据库索引视角:对比二叉树到红黑树再到B树
数据结构·数据库·b树
花花无缺2 小时前
mysql常用的基本函数
mysql
水无痕simon3 小时前
5 索引的操作
数据库·elasticsearch
柏油3 小时前
可视化 MySQL binlog 监听方案
数据库·后端·mysql