Đây là vấn đề "lớn nhất-n-mỗi nhóm" thường xuyên xuất hiện trê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;
Giải thích:tham gia tìm kiếm quốc gia c2
có cùng lục địa và dân số đông hơn. Nếu bạn không thể tìm thấy một (được chỉ ra bởi kết nối bên ngoài trả về NULL cho tất cả các cột của c2
) rồi đến c1
phải là quốc gia có dân số cao nhất trên lục địa đó.
Lưu ý rằng điều này có thể tìm thấy nhiều quốc gia trên mỗi lục địa, nếu có sự ràng buộc cho vị trí số 1. Nói cách khác, có thể có hai quốc gia mà không có quốc gia thứ ba nào tồn tại với dân số đông hơn.