Este é o problema do "maior n por grupo" que aparece com frequência no 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;
Explicação:faça um join procurando um país
c2
que tem o mesmo continente e uma população maior. Se você não encontrar um (o que é indicado pela junção externa retornando NULL para todas as colunas de c2
) então c1
deve ser o país com a maior população daquele continente. Observe que isso pode encontrar mais de um país por continente, se houver empate na posição #1. Em outras palavras, poderia haver dois países para os quais não existe um terceiro país com uma população maior.