SQLZOO习题详解(04)——SELECT within SELECT Tutorial

练习地址

1.List each country name where the population is larger than that of ‘Russia’.

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 continent = 'Europe' AND 
       gdp/population >(SELECT gdp/population FROM world WHERE name = 'United Kingdom');

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 = (SELECT continent FROM world WHERE name ='Argentina ')
  OR continent = (SELECT continent FROM world WHERE name = 'Australia')
  	ORDER BY name;

4.Which country has a population that is more than United Kingom but less than Germany? Show the name and the population.(这里不能用BETWEEN…AND… 因为它们是左闭右闭的)

SELECT name, population FROM world
  WHERE population > (SELECT population FROM world 
  						WHERE name ='United Kingdom')
        AND population < (SELECT population FROM world 
        					WHERE name ='Germany');

5.Show the name and the population of each country in Europe. Show the population as a percentage of the population of Germany.

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

6.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 > 0);

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 area >= ALL
    (SELECT area FROM world y
        WHERE y.continent=x.continent);

8.List each continent and the name of the country that comes first alphabetically.

SELECT continent, name FROM world x
   WHERE name = (SELECT name FROM world y WHERE x.continent=y.continent 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);

10.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 FROM world x
 WHERE x.population/3 >= ALL(SELECT population FROM world y WHERE x.continent = y.continent
  AND x.name!=y.name);

笔记

百分号使用

-- 舍掉小数点后几位
select concat(truncate(0.8799*100,2),'%');

结果 87.00%

-- 四舍五入
select concat(round(0.8799*100,2),'%');

结果 88.00%

-- 舍掉小数点后几位
select concat(floor(0.8799*100),'%');

结果 87%

-- 直接拼接
select concat(0.8799*100,'%');

结果 87.9900%

(ps:感觉有些不好刷啊,有些题目完全是新的知识点,但是又不给你提示,直接上手属实难顶。)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

echo-dundun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值