Dette er det "største-n-per-gruppe"-problem, der ofte dukker op på 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;
Forklaring:Foretag en joinforbindelse og led efter et land c2
der har det samme kontinent og en større befolkning. Hvis du ikke kan finde en (hvilket er angivet ved at den ydre joinforbindelse returnerer NULL for alle kolonner i c2
) derefter c1
skal være det land med den højeste befolkning på det kontinent.
Bemærk, at dette kan finde mere end ét land pr. kontinent, hvis der er uafgjort til #1-positionen. Med andre ord kan der være to lande, for hvilke der ikke findes et tredjeland med en større befolkning.