[英]need help understanding elements of these SQL ZOO queries
在这两个 sql 动物园问题中,有这个 where 子句我不明白:
问题一:
“一些国家的人口是所有邻国(在同一大陆)的三倍以上。给国家和大陆。”
回答:
select name, continent
from world x
where population/3 >= ALL(select population from world y where y.continent=x.continent and y.name <> x.name)
问题2:
找出所有国家的人口 <= 25000000 的大陆。然后找出与这些大陆相关的国家的名称。 显示名称、大陆和人口。
回答:
SELECT name, continent, population
FROM world x
WHERE 25000000>=ALL (SELECT population FROM world y WHERE x.continent=y.continent AND population>0)
在这两个问题的背景下, y.continent=x.continent
是做什么的? 它作为某种加入服务吗? 没有它,查询会失败,但我不完全明白为什么。
格式化您的查询,以便您可以更轻松地阅读并了解正在发生的事情。
select name,
continent
from world x
where population / 3 >= ALL(select population
from world y
where y.continent=x.continent
and y.name <> x.name)
你的问题是
“一些国家的人口是所有邻国(在同一大陆)的三倍以上。给国家和大陆。”
你必须在这里做两件事。 你必须得到所有的人口并除以三,然后找到所有等于或大于的人口。 那些将是流行音乐的三倍。
x.continent = y.continent 确保您只比较同一大陆上的那些。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.