SQL组合SELECT语句(适用于SQL动态)

时间:2015-03-08 17:49:42

标签: sql select

我使用SQL zoo来刷新我的SQL知识并发现了以下问题:

  

"有些国家的人口是其中任何一个国家的三倍以上   他们的邻居(在同一个大陆)。给国家和   洲"

我为此提出的解决方案是:

   SELECT name, continent 
   FROM world w
   WHERE NOT EXISTS (
   SELECT *
   FROM world nx
   WHERE nx.continent = w.continent
   AND nx.population <= 3*w.population)

口译员说我的栏目太少了#34; (在number 8 problem on SQL zoo上)。我不确定这里有什么不对。任何建议或帮助表示赞赏。

1 个答案:

答案 0 :(得分:2)

该页面有一个&#34;显示正确的结果&#34;按钮,如果不是您使用的SQL语句,它应该告诉您结果的错误结果。

当我使用你的SQL语句来解决这个问题时,我会得到正确的列,但行数不对,所以我必须假设你在某个地方输错了。

该问题的一个正确答案是:

SELECT name, continent
   FROM world w
   WHERE population IS NOT NULL
   AND NOT EXISTS (
      SELECT * FROM world x
         WHERE x.continent = w.continent
         AND population IS NOT NULL
         AND x.name != w.name
         AND x.population > w.population/3
   )