Logically divide a table into approximately equal parts using value ranges

We have a large table LT(C1,C2,C3...) with 2.5 billion rows, and we want to process it, update it or otherwise manipulate it in ranges of one of the columns that divide the table in roughly equal chunks. We don't have enough log space, can't risk using "not logged initially". The problem is that the rows associated with each value of C1 is uneven. We seek the boundary values of C1 that will roughly divide the table into... say 25000000 row increments which would roughly be about 100 such intervals. Here is the SQL we chose to use to generate the FROM-TO list of C1 values:

with a as (
    select count_big(*) CNT, sum(count_big(*)) over(order by C1) CUM_CNT, C1
      from LT
  group by C1) 
  select min(C1), max(C1) from a group by int(cum_cnt / 25000000) order by 1

The first table expression produces count, cumulative count for each value of C1. The final query uses integer division on the cumulative count thus creating a group for every 25000000 rows.

VDM Access: