SELECT * from (
 select a.*
 ,Date(a.StartDay) as 'Date'
 ,IF(@Result< a.Result OR (@Result= a.Result AND @ResultDay= a.StartDay), @Result:= a.Result, 0) as rekord
 ,IF(@Result<=a.Result, @ResultDay:= a.StartDay, 0) as rekorday
 from  (
    SELECT
    Pid
    ,PersonData.Gender
    ,Firstname,Lastname
    ,PersonData.Country
    ,rp,Result,Outcome,Notes,subCompetition.StartDay
    ,Competitions.Name as CompName
    ,Competitions.idCompetitions 
    from Starts
    join subCompetition on Starts.SubCompetition_idSubCompetition= subCompetition.idSubCompetition and subCompetition.CompetitionsTypes_idCompetitionsTypes = 3
    join PersonData on Starts.PersonData_idPersonData= PersonData.idPersonData
    join Competitions on subCompetition.Competitions_idCompetitions= Competitions.idCompetitions 
    where Result> 0
    and Outcome='White'
          and PersonData.Gender= 'F'
    order by subCompetition.StartDay asc,Starts.Result asc 
    limit 10000000 
 ) As a
 ,(SELECT @Result:=0) y
 ,(SELECT @ResultDay:='0001-01-01') z
    order by a.StartDay asc,Result asc 
 ) as b
 where rekord> 0
 order by Result desc