Если вы хотите, чтобы все диапазоны были на 10: используйте:
SELECT (d-10)*10 AS `from` , (d-9)*10 AS `to` , c AS `count` FROM
(SELECT DISTINCT(FLOOR((`p`.`new`*10)/(`p`.`old`))) AS d,
count(1) AS c FROM prices as p GROUP BY 1) AS stats
для такой структуры:
CREATE TABLE `prices` (
`old` int(11) NOT NULL,
`new` int(11) NOT NULL
);
edit:> = from и