Apologies again for my stupid errors in that, that is probably the first time in all my years of programming that I didn't know how to calculate the values at runtime from an array of fixed values and a parameterised percentage tolerance! Bring back Cobol! Hey ho, it was fun but this ought to be a bit better, hopefully even right.

MariaDB [static]> select cpid,nick,count(*) as mycount from boinc_user
where
metric1 between 995 and 1005
or metric1 between 9950 and 10050
or metric1 between 24875 and 25125
or metric1 between 49750 and 50250
or metric1 between 99500 and 100500

or metric1 between 248750 and 251250
or metric1 between 497500 and 502500
or metric1 between 746250 and 753750
or metric1 between 995000 and 1005000

or metric1 between 2487500 and 2512500
or metric1 between 4975000 and 5025000
or metric1 between 9950000 and 10050000

or metric1 between 24987500 and 25012500
or metric1 between 49950000 and 50050000
or metric1 between 99950000 and 100050000

or metric1 between 249875000 and 250125000
or metric1 between 499500000 and 500500000
or metric1 between 999500000 and 1000500000

or metric1 between 2498750000 and 2501250000
or metric1 between 4995000000 and 5005000000
or metric1 between 9995000000 and 10005000000

or metric1 between 24987500000 and 25012500000
or metric1 between 49950000000 and 50050000000
or metric1 between 99950000000 and 100050000000

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

I assume you can just copy and paste and change the names for SubProjects but I don't know.