MySql:计算价格范围内的行数?

时间:2009-12-15 20:16:41

标签: sql mysql

如果我想知道product_price在500-1000范围内的条目数量。我怎么能这样做?

谢谢!

3 个答案:

答案 0 :(得分:18)

我猜你的意思是:

SELECT COUNT(*) FROM products WHERE product_price >= 500 AND product_price <= 1000

但是您没有指定您的间隔是开放,关闭还是半关闭。当使用打开或关闭的间隔(上面是一个封闭的间隔)时,在制表所有间隔时,必须注意不要错过或重复计算边界上的项目。

根据您的工作情况,这可能对您有所帮助:

SELECT COUNT(*) FROM products WHERE product_price >= 500 AND product_price < 1000

如果你想得到所有的间隔,你也可以在一个陈述中做到这一点:

SELECT
SUM(CASE WHEN product_price < 500 THEN 1 ELSE 0 END) AS price_range_1,
SUM(CASE WHEN product_price >= 500 AND product_price < 1000 THEN 1 ELSE 0 END) AS price_range_2,
SUM(CASE WHEN product_price >= 1000 THEN 1 ELSE 0 END) AS price_range_3
FROM products

或者(在我看来更好),将你的间隔范围存储在另一个表中并加入它。

(很多其他人都指出了BETWEEN关键字。如果您感兴趣,它等同于封闭间隔版本,即第一个版本。)

答案 1 :(得分:3)

SELECT COUNT(*) FROM the_table WHERE price BETWEEN 10 AND 20;

答案 2 :(得分:1)

使用BETWEEN

SELECT count(*) FROM table WHERE price BETWEEN 500 AND 1000