也許我誤解,你只是想在每個國家返回最大的城市?
如果是這樣,你只需按國家分組,而不是按國家和城市。您需要在GROUP BY
聲明中包含標識國家的屬性以及該國家的名稱。您的查詢最終會看起來像:
SELECT lab6.country.name AS cName, max(lab6.city.population) AS largest_pop
FROM lab6.country, lab6.city
WHERE lab6.country.country_code = lab6.city.country_code
GROUP BY lab6.country.country_code, lab6.country.name
如果您還想包括最大的城市的名稱,您首先需要決定是否有多個大城市(其中有兩個國家做什麼或更多具有相同,最大人口的城市)。我會假設你將所有人都包括在內都可以。在這種情況下,你可以簡單地做一個子查詢在FROM子句中,加入了對城市具有相同人口:
SELECT lc.cName, lab6.city.name, lc.largest_pop
FROM (
SELECT lab6.country.country_code AS cCode
lab6.country.name AS cName,
max(lab6.city.population) AS largest_pop
FROM lab6.country, lab6.city
WHERE lab6.country.country_code = lab6.city.country_code
GROUP BY lab6.country.country_code, lab6.country.name
) AS lc
JOIN lab6.city ON lc.cCode = lab6.city.country_code
WHERE lab6.city.population = lc.largest_pop
什麼[RDBMS](http://en.wikipedia.org/wiki/Relational_database_management_system)您正在使用? 'RDBMS'代表*關係數據庫管理系統*。 'RDBMS是SQL'的基礎,並且適用於所有現代數據庫系統,如MS SQL Server,IBM DB2,Oracle,MySQL等...... – 2013-03-12 16:02:16
我正在使用pgSQL – 2013-03-12 16:03:17
這是今天第三次提出這個問題,從同樣的家庭作業中出來。我很高興老師意識到這一點,但也許學生應該做好更好的準備和指導,以便他們自己回答。 – 2013-03-12 16:38:39