Visto che la tabella sport è inutile in quanto nella tabella atleti è ripetuto lo sport e non la chiave della tabella sport io farei:
select sport, count(id) as conta from atleti group by sport
having
conta <> (select count(id) from atleti group by sport order by count(id) desc limit 1)
and
conta <> (select count(id) from atleti group by sport order by count(id) asc limit 1)
Ossia conto i vari sport raggruppandoli e poi li riconto 2 volte ordinandoli desc e asc ed prendendo solo il primo record, ossia i massimi e minimi, e con having li escludo, forse si può migliorare
W.