Du kan göra detta med fönsterfunktioner.
select player_id, runs, count(*) as numruns
from (select p.*,
(row_number() over (partition by player_id order by match_date) -
row_number() over (partition by player_id, runs order by match_date)
) as grp
from players p
) pg
group by grp, player_id, runs
order by numruns desc
limit 1;
Den viktigaste observationen är att "körningar i en sekvens" har denna egenskap:om du räknar upp raderna (för varje spelare) efter datum och du räknar upp raderna för varje spelare och efter datum, då är skillnaden konstant när körningarna är alla lika och i ordning. Det bildar en grupp som du kan använda för aggregering för att identifiera den spelare du vill ha.
Här är SQL Fiddle.