Това е проблемът с „най-големия n-на-група“, който се появява често в 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
който има същия континент и по-голямо население. Ако не можете да намерите такъв (което е посочено от външното съединение, връщащо NULL за всички колони на c2
) след това c1
трябва да е страната с най-голямо население на този континент.
Имайте предвид, че това може да намери повече от една държава на континент, ако има равенство за позиция №1. С други думи, може да има две държави, за които не съществува трета държава с по-голямо население.