SQLzoo,在“选择教程”中选择
我目前正在学习本教程,无法回答问题8: 一些国家的人口是同一大陆任何邻国的三倍以上。给国家和大陆 。。我当前的查询不会被接受为答案:SQLzoo,在“选择教程”中选择,sql,Sql,我目前正在学习本教程,无法回答问题8: 一些国家的人口是同一大陆任何邻国的三倍以上。给国家和大陆 。。我当前的查询不会被接受为答案: SELECT x.name, x.continent FROM world x WHERE (x.population * 3) > ALL ( SELECT y.population FROM world y WHERE x.continent = y.continent ) 我做错了什么?答案是什么?您的查询的问题是,您没有将大国本身排除在内部查询的结
SELECT x.name, x.continent FROM world x
WHERE (x.population * 3) > ALL (
SELECT y.population FROM world y
WHERE x.continent = y.continent )
我做错了什么?答案是什么?您的查询的问题是,您没有将大国本身排除在内部查询的结果之外。正确的查询是:
SELECT x.name, x.continent
FROM world x
WHERE x.population > ALL(
SELECT (y.population*3)
FROM world y
WHERE x.continent=y.continent
AND x.name<>y.name
)
请注意内部查询中的最后一个条件,其中我通过执行x.namey.name将x国家从y国家列表中排除。如果不这样做,结果中将不会返回任何行
另外,通常使用id字段排除内部查询中实体列表中的外部实体,但sqlzoo上的表没有id字段。简单回答:
Select name, continent
From world x
Where population > all(Select max(population)*3 From world y Where x.continent = y.continent AND y.name != x.name)
您选择的国家的人口至少是其邻国的3倍。