给出一个类似下面的表
+-------------+-----------+---------+------------+--------------+ | name | continent | area | population | gdp | | Afghanistan | Asia | 652230 | 25500100 | 20343000000 | | Albania | Europe | 28748 | 2831741 | 12960000000 | | Algeria | Africa | 2381741 | 37100000 | 188681000000 | | Andorra | Europe | 468 | 78115 | 3712000000 | | Angola | Africa | 1246700 | 20609294 | 100990000000 | +-------------+-----------+---------+------------+--------------+
获得以下结果所需的查询是什么。
有些国家的人口数量是其邻国(在同一大洲)的三倍以上。给各个国家和大陆。
修改
这是我到目前为止所尝试过的。
SELECT name, continent FROM world x WHERE x.name = ALL(SELECT name FROM world y where y.continent = x.continent and (x.population/y.population) > 3)
以上查询不会返回任何记录:(
并补充说这不是家庭作业。我正在尝试为后端开发人员访谈刷新SQL。(暂时不使用SQL而是使用对象关系映射框架)
答案 0 :(得分:0)
尝试此查询
SELECT name, continent
FROM countries x
WHERE x.population > ALL (SELECT population * 3 FROM countries y WHERE x.continent = y.continent AND x.name <> y.name);
答案 1 :(得分:0)
试试这个: -
SELECT name, continent FROM world where name not in(
SELECT name FROM world a where name =
ALL(SELECT name FROM world b where a.continent =b.continent and a.population>b.population*3)
)