Допустим, этот запрос возвращает ваш ценовой диапазон:
SELECT a, b FROM x WHERE ... blah blah blah
Теперь. Если вы хотите посчитать, это то, что я бы сделал:
SELECT
CONCAT(y.a,'-',y.b) "range",
(SELECT COUNT(*) FROM item WHERE price BETWEEN y.a AND y.b) "total"
FROM
(SELECT a, b FROM x) AS y
Я думаю, это должно работать. Я не знаю, если это лучший способ, но попробовать?