无法解决需要子查询的问题

时间:2019-07-09 23:22:32

标签: sql subquery

这是问题所在:有些国家的人口是其邻国(在同一大陆上)的三倍以上。提供国家和大洲。

这是我尝试执行的操作,这是不正确的,sql可能无法将这两个总体划分为属于不同的国家,但是我不知道如何进行。

我的第一次尝试:

List2

这是我的第二次尝试:

SELECT name, continent
FROM world
GROUP BY continent
WHERE (population/3) >= population;

1 个答案:

答案 0 :(得分:1)

一种方法是使用ALL运算符:

select t.name, t.continent
from world t
where (t.population / 3) > ALL (
  select population from world 
  where continent = t.continent and name <> t.name 
)

子查询包含与要比较的行所在国家/地区(该国家/地区除外)在同一大陆中的所有国家/地区的所有人口。
因此,如果该国家/地区的population / 3大于所有这些人口,则会选择该国家/地区。
或类似地:

select t.name, t.continent
from world t
where (t.population / 3) > (
  select max(population) from world 
  where continent = t.continent and name <> t.name 
)