Еще одна версия треугольного соединения.
declare @T table(ID int primary key, [Count] int)
insert into @T values (1, 54), (2, 42), (3, 33),(4, 25), (5, 16), (6, 9), (8, 5), (9, 3),(10, 2)
;with R(ID, [Count], Running) as
(
select T1.ID,
T1.[Count],
cast(T3.[Count] as float)
from @T as T1
cross apply (select sum(T2.[Count])
from @T as T2
where T1.ID >= T2.ID) as T3([Count])
),
T(Total) as
(
select sum([Count])
from @T
)
select top 1 R.ID, R.[Count], R.Running
from R
inner join T
on R.Running / T.Total > 0.9
order by R.ID