2009-12-15 4 views

उत्तर

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 

वैकल्पिक रूप से (और मेरी राय में बेहतर), अपनी अंतराल श्रृंखला को किसी अन्य तालिका में स्टोर करें और इसके साथ जुड़ें।

(कई अन्य लोगों के बीच कीवर्ड ने बताया है मामला आप रुचि रखते हैं में, यह बंद अंतराल संस्करण के बराबर है, पहले संस्करण यानी है।।)

+0

+1। उत्कृष्ट स्पष्टीकरण। – James

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

उपयोग BETWEEN:

SELECT count(*) FROM table WHERE price BETWEEN 500 AND 1000 
संबंधित मुद्दे