Если я правильно следую логике, вы хотите, чтобы количество событий из «трех верхних» континентов учитывалось.Вот более простой способ получить эту информацию:
SELECT EventName
FROM (SELECT ContinentID, EventName,
DENSE_RANK() OVER (ORDER BY cnt, ContinentID) as seqnum
FROM (SELECT c.ContinentID, e.EventName
COUNT(*) OVER (PARTITION BY c.ContinentID) AS cnt
FROM [WorldEvents].[dbo].[tblCountry] c INNER JOIN
[WorldEvents].[dbo].[tblEvent] e
ON e.[CountryID] = c.CountryID
) ce
) ce
WHERE seqnum <= 3;