1

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;

これはどこが間違っていますか?

4

2 に答える 2

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
于 2013-05-05T10:45:25.690 に答える
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
于 2013-05-06T01:57:20.960 に答える