如果我想知道product_price在500-1000范围内的条目数量。我怎么能这样做?
谢谢!
答案 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