Du kan gøre dette med vinduesfunktioner.
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 vigtigste observation er, at "kørsler i en sekvens" har denne egenskab:Hvis du opregner rækkerne (for hver spiller) efter dato, og du opregner rækkerne for hver spiller og efter kørslerne efter dato, så er forskellen konstant, når kørslerne er alle ens og i orden. Det danner en gruppe, som du kan bruge til aggregering for at identificere den spiller, du ønsker.
Her er SQL Fiddle.