sql语句学习--sqlzoo答案--select in select

表名称
sql语句学习--sqlzoo答案--select in select_第1张图片
1.列出每個國家的名字 name,當中人口 population 是高於俄羅斯'Russia'的人口。

SELECT name from world 
where population >
(SELECT population from world where name='Russia');

2.列出歐州每國家的人均GDP,當中人均GDP要高於英國'United Kingdom'的數值。

SELECT name from world  
where continent='Europe' and
gdp/population >(select gdp/population from world where name='United Kingdom');

3.在阿根廷Argentina 及 澳大利亞 Australia所在的洲份中,列出當中的國家名字 name 及洲分 continent 。按國字名字順序排序

//IN 操作符允许我们在 WHERE 子句中规定多个值
select name,continent from world
where continent in(select continent from world where name
in('Argentina','Australia'))
order by name;

4.哪一個國家的人口比加拿大Canada的多,但比波蘭Poland的少?列出國家名字name和人口population 。

select name,population from world
where population>(select population from world where name='Canada')and
population<(select population from world where name='Poland')

5.Germany德國(人口8000萬),在Europe歐洲國家的人口最多。Austria奧地利(人口850萬)擁有德國總人口的11%。顯示歐洲的國家名稱name和每個國家的人口population。以德國的人口的百分比作人口顯示。

//CONCAT函数用于将两个字符串连接起来,形成一个单一的字符串。
//ROUND 函数用于把数值字段舍入为指定的小数位数,语法SELECT ROUND(column_name,decimals) FROM table_name,decimals规定要返回的小数位数。
select name,concat(round(population/(select population from world where name = 'germany')*100),'%')
from world
where continent='europe'

6.哪些國家的GDP比Europe歐洲的全部國家都要高呢? [只需列出 name 。] (有些國家的記錄中,GDP是NULL,沒有填入資料的。)

select name from world 
where gdp>all(select gdp from world where continent ='Europe' and gdp>0)

7.在每一個州中找出最大面積的國家,列出洲份 continent, 國家名字 name 及面積 area。 (有些國家的記錄中,AREA是NULL,沒有填入資料的。)

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 x.name=(select min(name) from world y 
where x.continent=y.continent)

9.找出洲份,當中全部國家都有少於或等於 25000000 人口. 在這些洲份中,列出國家名字name,continent 洲份和population人口。

select name,continent,population from world
where continent in(select continent from world where population >25000000  )

10.有些國家的人口是同洲份的所有其他國的3倍或以上。列出 國家名字name 和 洲份 continent。

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

你可能感兴趣的:(sql语句学习--sqlzoo答案--select in select)