Back to WCA Statistics

Most competitions abroad

Person

One terse result.country_id != competition.country_id does it. Each results row stores the cuber's country at that moment — so the "abroad" flag follows country changes naturally, as expected.

Top spots are typically small-country residents who travel globally; intra-EU hopping contributes too — three countries in a week isn't rare.

By the numbers

COUNT(DISTINCT)
Aggregate
Distinct comp count
Top 100
Leaderboard depth
Sorted by abroad count desc
排除 8 个虚拟国
Filter
XA/XE/XF/XM/XN/XO/XS/XW

Data source

results result joined to competitions; WHERE result.country_id != competition.country_id = abroad. COUNT(DISTINCT competition_id) avoids multi-event double-counting.

Continental FMC virtual countries are filtered out — they have no geo, marking them "abroad" would skew things.

sql
SELECT person_id, COUNT(DISTINCT competition_id) competitions_abroad
FROM results
JOIN competitions ON competitions.id = competition_id
WHERE result.country_id != competition.country_id
  AND competition.country_id NOT IN
      ('XA','XE','XF','XM','XN','XO','XS','XW')
GROUP BY person_id
ORDER BY competitions_abroad DESC
LIMIT 100

Algorithm / pipeline

1
Tag each row "abroad"
WCA dump's results.country_id snapshots the cuber's country at that time — country changes don't rewrite history, so old abroad flags stay correct.
2
Exclude continental virtuals
XA/XE/XF/XM/XN/XO/XS/XW are placeholders for continental FMC, no real geo — drop these.
3
Dedup + aggregate
COUNT(DISTINCT competition_id) collapses multi-event same comp.
4
Sort desc, take 100
Order by abroad count desc; outer join persons for names.

Caveats & edges

Related stats & links