SQLZOO练习(五) Select within select

SQLZOO练习(五) Select within select
Select within select

1.列出人口大于"俄罗斯"的每个国家/地区名称。

SELECT name 
FROM world
WHERE population > (SELECT population 
                    FROM world
                    WHERE name='Russia');

2.显示欧洲人均 GDP 大于"英国"的国家。
人均国内生产总值
人均GDP是gdp/人口

SELECT name
FROM world
WHERE continent = 'Europe' 
AND gdp/population > (SELECT gdp/population 
                      FROM world 
                      WHERE name = 'United Kingdom');

3.列出包含阿根廷或澳大利亚各大洲的国家的名称和大陆。按国家/地区名称排列。

SELECT name,continent
FROM world
WHERE continent IN (SELECT continent FROM world
                    WHERE name IN ('Argentina','Australia'))
ORDER BY name;

4.哪个国家的人口比加拿大多,但比波兰少?显示名称和人口。

SELECT name,population
FROM world 
WHERE population > (SELECT population FROM world
                    WHERE name = 'Canda')
  AND population < (SELECT population FROM world
                    WHERE name = 'Poland');

5.德国(人口8000万)是欧洲国家中人口最多的国家。奥地利(人口850万)占德国人口的11%。
显示欧洲每个国家的名称和人口。按德国人口的百分比显示人口。
格式应为名称,例如百分比:

名字百分比
阿尔巴尼亚3%
安道尔0%
奥地利11%

小数位
百分比符号 %
您可以使用函数CONCAT 添加百分比符号。

SELECT name,CONCAT(ROUND(population/(SELECT population FROM world WHERE name = 'Germany')*100,0),'%') AS percentage
FROM world
WHERE continent = 'Europe';

6.哪些国家的GDP高于欧洲的每个国家?仅给出名称。(某些国家/地区可能有 NULL gdp 值)

SELECT name
FROM world
WHERE gdp > ALL(SELECT gdp
                 FROM world
                 WHERE continent = 'Europe' AND gdp>0);

7.查找每个大陆上最大的国家(按地区)显示大陆、名称和面积。

SELECT continent, name, area 
FROM world x
WHERE area >= ALL (SELECT area 
                   FROM world y
                   WHERE y.continent=x.continent
                   AND area>0);

8.按字母顺序列出每个大陆和先到的国家/地区的名称。

SELECT continent,name
FROM world x
WHERE name <=  ALL(SELECT name 
                   FROM world y
                   WHERE y.continent=x.continent);

9.查找所有国家/地区的人口 <= 250000000 的大洲。然后找到与这些大陆相关的国家的名称。显示名称,大陆和人口。

SELECT name,continent,population FROM world x
WHERE 25000000 >= ALL(SELECT population 
                      FROM world y
                      WHERE y.continent = x.continent
                      AND y.population > 0);

10.一些国家的人口是其任何邻国(同一个大陆)的三倍以上。显示国家和大陆。

SELECT name,continent
FROM world x
WHERE population >= ALL(SELECT population*3 
                        FROM world y
                        WHERE y.continent=x.continent
                        AND y.name != x.name);

Quiz:CBADBBB

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值