SQLZOO练习-- SELECT within SELECT Tutorial(含题目翻译)

知识点

子查询

 

数据表

world

 

 

题目内容

1.List each country name where the population is larger than that of 'Russia'.(查找人口数大于'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'.(查找人均GDP大于'United Kingdom'的国家,人均GDP=GDP/人口数)

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.(查找和‘Argentina’或者‘Australia’在同一个洲的国家名称和洲名称,按照国家名称排序)

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.(查找人口数多于‘Canada’,但少于‘Poland’的国家名称和人口数)

ps:这道题不可以用between and,因为题目要求不包含上下限,而between and是包含上下限的

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.Show the name and the population of each country in Europe. Show the population as a percentage of the population of Germany.(查找‘Europe’洲中的国家名称和人口百分比,人口百分比=人口数/‘Germany’国家人口数)

select name,
concat(round(population/(select population from world where name = 'Germany')*100,0),'%') 
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).(查找GDP大于‘Europe’中每一个国家GDP的国家,需要注意有的国家GDP为0)

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
          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.(查找每个国家的人口数都≤25000000的大洲,并查询这些大洲下的国家名称、洲名称、人口数)

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.(查找隶属同一个洲,且人口数是其他国家人口数3倍的国家名称、洲名称)

select name,continent from world x 
where x.population/3 >= all (select y.population from world y
                        where x.continent = y.continent
                        and x.name <> y.name
                        and population >0)

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
ug871-vivado-high-level-synthesis-tutorial.pdf是有关Vivado高级综合教程的文档。该文档提供了使用Vivado高级综合工具的指南和教程,以帮助开发人员更高效地进行数字设计。 Vivado是赛灵思公司开发的综合工具套件,用于设计和实现数字电路。高级综合是一种将高级语言(如C或C++)转换为硬件描述语言(如VHDL或Verilog)的技术。它使开发人员能够使用更高级的语言进行设计,并将其转换为硬件电路,从而加快设计过程的速度。 在ug871-vivado-high-level-synthesis-tutorial.pdf中,开发人员将学习如何使用Vivado高级综合工具来创建和转换高级语言设计。文档以简单易懂的方式介绍了Vivado高级综合工具的基本概念和操作步骤。 该教程包以下主要内容: 1. 介绍了高级综合的基本原理和优势,以及该技术可以加快设计速度的原因。 2. 解释了Vivado高级综合工具的功能和特点,以及如何进行安装和配置。 3. 提供了使用Vivado高级综合工具进行设计的具体步骤和操作指南。其中包括创建高级语言设计文件、设定综合目标和选项、运行综合和优化过程等。 4. 展示了如何生成和验证转换后的硬件电路,并进行仿真和测试。 5. 提供了一些示例案例,帮助开发人员更好地理解和应用Vivado高级综合工具。 通过学习和应用ug871-vivado-high-level-synthesis-tutorial.pdf中的内容,开发人员可以更有效地利用Vivado高级综合工具进行数字设计。这将使他们在开发过程中节省时间和精力,并且能够更快地实现设计目标。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值