2013-05-05 4 views
1

Я пытаюсь ответить на следующий вопрос как часть Mondial DB.Mondial DB Внутренний запрос

-- For each country display the city with the highest population together with the number of the population. 

Таблицы:

Страна (Код, Имя, Столица провинции, площадь, население)

Город (Имя, страна, провинция, долгота, широта, население)

до сих пор у меня есть следующие:

SELECT 
    Country.Name, MaxCity.CityName, MaxCity.Population 
FROM 
    (SELECT 
     MAX(Population) AS Population, 
      City.Country, 
      City.Name AS CityName 
    FROM 
     City 
    GROUP BY City.Country) AS MaxCity 
     JOIN 
    Country ON Country.Code = MaxCity.Country; 

Где все пойдет?

ответ

2

Попробуйте в этом случае (я добавил дополнительный присоединиться)

SELECT 
    Country.Name, City.CityName, City.Population 
FROM 
    Country Join City On Country.Code = City.Country 
Join (SELECT 
     MAX(Population) AS Population,Country as Country from City Group By Country) as X 
On City.Country = x.Country and City.Population = x.Population 
1

В запросе происхождения нужно добавить в группу полем city.name

select country.name, maxcity.cityname, maxcity.population 
    from 
     (select 
      MAX(population) as population, 
     city.country, 
     city.name as cityname 
    from city 
    group by city.country, city.name) as maxcity 
      join 
    country on country.code = maxcity.country 
+0

Вы можете изменить свой предыдущий ответ. –

Смежные вопросы