Nếu tôi muốn biết có bao nhiêu mục tôi có trong đó product_price nằm trong phạm vi 500-1000. Làm thế nào tôi có thể làm điều đó?MySql: Đếm số hàng trong phạm vi giá?
Cảm ơn!
Nếu tôi muốn biết có bao nhiêu mục tôi có trong đó product_price nằm trong phạm vi 500-1000. Làm thế nào tôi có thể làm điều đó?MySql: Đếm số hàng trong phạm vi giá?
Cảm ơn!
Tôi đoán bạn có ý nghĩa này:
SELECT COUNT(*) FROM products WHERE product_price >= 500 AND product_price <= 1000
Nhưng bạn không nêu rõ liệu khoảng của bạn đang mở, đóng cửa hoặc khép hờ. Khi sử dụng khoảng thời gian mở hoặc đóng (ở trên là khoảng thời gian đóng) bạn phải cẩn thận không bỏ lỡ hoặc đếm đôi các mục trên ranh giới khi lập bảng cho tất cả các khoảng thời gian.
Tùy thuộc vào những gì bạn đang làm, điều này có thể là tốt hơn cho bạn:
SELECT COUNT(*) FROM products WHERE product_price >= 500 AND product_price < 1000
Nếu bạn muốn để có được tất cả các khoảng thời gian, bạn có thể làm điều đó trong một tuyên bố quá:
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
Ngoài ra (và tốt hơn trong quan điểm của tôi), lưu trữ khoảng thời gian của bạn trong một bảng khác và tham gia với nó.
(Nhiều người khác đã chỉ ra các GIỮA từ khóa Trong trường hợp bạn quan tâm, đó là tương đương với phiên bản khoảng thời gian khép kín, tức là phiên bản đầu tiên..)
SELECT COUNT(*) FROM the_table WHERE price BETWEEN 10 AND 20;
Sử dụng BETWEEN
:
SELECT count(*) FROM table WHERE price BETWEEN 500 AND 1000
+1. Giải thích tuyệt vời. – James