Com agregação condicional:
SELECT
SUM(price < 15) `Less than 15`,
SUM(price >= 15 AND price <= 30) `Between 15 and 30`,
SUM(price > 30) `More than 30`
FROM `table`
WHERE is_active=1
Em MySql uma expressão booleana como
price < 15
é avaliado como 0
para false
ou 1
para true
.Veja a demonstração .
Resultados:
| Less than 15 | Between 15 and 30 | More than 30 |
| ------------ | ----------------- | ------------ |
| 1 | 1 | 1 |