如果我想知道我有多少条目,其中 product_price 在 500-1000 范围内。我该怎么做?
谢谢!
最佳答案
我猜你是这个意思:
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关键字,有兴趣的可以等同于闭区间版本,即第一个版本。)
关于sql - MySql:计算价格范围内的行数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1910093/