可以使用 CASE WHEN
和 ROUND
函数来实现:
SELECT
ROUND(price/50)*50 AS price_range,
COUNT(*) AS count
FROM
table_name
WHERE
price >= 700 AND price <= 1000
GROUP BY
price_range
ORDER BY
price_range;
解释一下这个语句:
ROUND(price/50)*50
表示将价格按照50为一档进行分类,也就是四舍五入到最接近的50的倍数。COUNT(*)
统计每个价格区间内有多少条记录。WHERE price >= 700 AND price <= 1000
表示只选择价格在700到1000之间的记录。GROUP BY price_range
根据价格区间分组统计。ORDER BY price_range
按照价格区间从小到大排序输出。