これは、StackOverflowで頻繁に発生する「グループあたり最大の」問題です。
SELECT c1.Continent, c1.Name
FROM Country c1
LEFT OUTER JOIN Country c2
ON (c1.continent = c2.continent AND c1.Population < c2.Population)
WHERE c2.continent IS NULL;
説明:国c2
を探して参加してください それは同じ大陸とより多くの人口を持っています。見つからない場合(c2
のすべての列に対してNULLを返す外部結合によって示されます )次にc1
その大陸で最も人口の多い国でなければなりません。
#1の位置に同点の場合、これは大陸ごとに複数の国を見つける可能性があることに注意してください。言い換えれば、人口の多い第三国が存在しない2つの国が存在する可能性があります。