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

JD *_*cks 5 mysql sql

如果我想知道product_price在500-1000范围内有多少条目.我怎样才能做到这一点?

谢谢!

Mar*_*ers 18

我猜你的意思是:

SELECT COUNT(*) FROM products WHERE product_price >= 500 AND product_price <= 1000
Run Code Online (Sandbox Code Playgroud)

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

根据您的工作情况,这可能对您更好:

SELECT COUNT(*) FROM products WHERE product_price >= 500 AND product_price < 1000
Run Code Online (Sandbox Code Playgroud)

如果您想获得所有间隔,您也可以在一个语句中执行此操作:

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
Run Code Online (Sandbox Code Playgroud)

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

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