这些列有一个world
的表:continent
,name
,population
等
查询是:
一些国家的人口是其邻国(在同一大陆上)的三倍以上。给国家和大洲。
解决方案是:
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)
我不明白最后一部分
y.name != x.name
。在这种情况下,我实际上并没有100%理解为什么您需要y.continent = x.continent
。 最佳答案
您有一个相关的子查询。
这样可以确保您位于同一大陆(y.continent = x.continent
),并且不要将任何国家与其自身(y.name != x.name
)进行比较。
关于mysql - SQL Zoo中的最后一个查询,SELECT教程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38287631/