Você pode fazer isso com funções de janela.
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;
A observação chave é que "execuções em sequência" têm esta propriedade:se você enumerar as linhas (para cada jogador) por data e enumerar as linhas para cada jogador e por corridas por data, então a diferença é constante quando as corridas são todos iguais e em ordem. Isso forma um grupo que você pode usar para agregação para identificar o jogador desejado.
Aqui é o violino SQL.