1

次の列を持つテーブルbbcがあります。

name (世界の特定の地域内の国の名前を指します)

地域(世界の大陸)

人口(名前名フィールドの国の人口)私が答えようとしている質問:

質問は次のとおりです。
「いくつかの国は、(同じ地域内の)近隣諸国の 3 倍以上の人口を持っています。国と地域を教えてください。」

私は答えが次のようなものかもしれないと思っていました:

SELECT a.name, a.region FROM bbc AS a
WHERE a.region IN
     (
        SELECT b.region FROM bbc AS b 
        GROUP By b.region 
        HAVING MIN(b.population) < 3*b.population)

しかし、正直なところ、私はその最後の行でそれを失います.同じ地域の隣人の3倍以上のカウンターを見つける方法がわかりません! かなり厳しい。O_o

ありとあらゆる助けをいただければ幸いです。

4

3 に答える 3

2
select
   a.name, a.region
from bbc as a
where 
    a.population >
    (
        select 3*max(b.population)
        from bbc as b
        where b.region = a.region and b.name <> a.name
    )
于 2012-11-03T21:33:14.710 に答える
0
Select
  a.name,
  a.region
From
  bbc as a
Where
  Not Exists (
    Select
      'x'
    From
      bbc as b
    Where
      a.region = b.region And
      a.name != b.name And
      a.population < 3 * b.population
  )
于 2012-11-03T21:41:24.457 に答える
-1
SELECT name, continent from world x
WHERE (SELECT population from world y
          where y.name = x.name 
           and y.continent = x.continent
           and population > 0) > ALL 
(SELECT 3*population from world z 
          where z.continent = x.continent 
             and z.name != x.name
          and population > 0);
于 2016-03-23T13:54:26.707 に答える