One method is a subquery:
SELECT t.*
FROM (SELECT ROW_NUMBER() over (PARTITION BY Sport ORDER BY Athlete ) as rn, Athlete, Event
FROM `table`
) t
WHERE rn = 1;
A more colloquial way to do this in BQ uses aggregation, though:
select array_agg(t order by athlete asc limit 1)[ordinal(1)].*
from `table` t
group by sport;
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…