• Not directly related to article - but - an alternative to spt_values:

    create table #Number (number int);

    with N4000 as (select 0 as Number union all select Number+1 from N4000 where Number <4000

    )insert into #number select * from N4000 option (MAXRECURSION 4000);

    create index ix_N on #Number (Number);

    with cteTally

    as

    (

    select Number from #Number where number >0 and number <=(Select max(age) from #RunnersBig)

    )

    select *

    from cteTally

    cross apply

    (

    select top 2 * from #RunnersBig where age=number order by time

    ) as Winners