Just in case it helps you Bok, I knocked this up - it doesn't take into account SubProjects but I suspect a bit of copy and paste would do so in a few seconds. I went for a 0.5% tolerance. Why not see how long it takes to run and decide if it's doable or not

MariaDB [static]> select cpid,nick,count(*) as mycount from boinc_user
where
(truncate(metric1,0) between 9995 and 10005)
or (truncate(metric1,0) between 24975 and 25025)
or (truncate(metric1,0) between 49950 and 50050)
or (truncate(metric1,0) between 99995 and 10050)
or (truncate(metric1,0) between 249750 and 250250)
or (truncate(metric1,0) between 499500 and 500500)
or (truncate(metric1,0) between 749250 and 750750)
or (truncate(metric1,0) between 999995 and 1000050)
or (truncate(metric1,0) between 2497500 and 2502500)
or (truncate(metric1,0) between 4995000 and 5005000)
or (truncate(metric1,0) between 9999995 and 10000050)
or (truncate(metric1,0) between 24975000 and 25025000)
or (truncate(metric1,0) between 49950000 and 50050000)
or (truncate(metric1,0) between 99999995 and 100000050)
or (truncate(metric1,0) between 249750000 and 250250000)
or (truncate(metric1,0) between 499500000 and 500500000)
or (truncate(metric1,0) between 999999995 and 1000000050)
or (truncate(metric1,0) between 2497500000 and 2502500000)
or (truncate(metric1,0) between 4995000000 and 5005000000)
or (truncate(metric1,0) between 9999999995 and 10000000050)
or (truncate(metric1,0) between 24975000000 and 25025000000)
or (truncate(metric1,0) between 49950000000 and 50050000000)
or (truncate(metric1,0) between 99999999995 and 100000000500)
or (truncate(metric1,0) between 249750000000 and 250250000000)
or (truncate(metric1,0) between 499500000000 and 500500000000)
or (truncate(metric1,0) between 999999999995 and 1000000000050)
or (truncate(metric1,0) between 2497500000000 and 2502500000000)
or (truncate(metric1,0) between 4995000000000 and 5005000000000)
or (truncate(metric1,0) between 9999999999995 and 10000000000050)

group by cpid order by mycount desc limit 0,10;