टेबल के सबसेट (भाग) से न्यूनतम और अधिकतम मान प्राप्त करना
पूरी टेबल के बजाय केवल पहली N पंक्तियों (या किसी सबसेट) पर MIN() और MAX() लागू करने के लिए सबक्वेरी में LIMIT उपयोग करें।
सिंटैक्स
SELECT MIN(col) AS min_val, MAX(col) AS max_val FROM (SELECT col FROM yourTable LIMIT n) AS subquery;
उदाहरण
CREATE TABLE MinAndMaxValueDemo (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Value INT
);
INSERT INTO MinAndMaxValueDemo (Value) VALUES (10), (100), (50), (40);
पहली 3 पंक्तियों पर MIN/MAX
SELECT MIN(Value) AS MinimumValue, MAX(Value) AS MaximumValue FROM (SELECT Value FROM MinAndMaxValueDemo LIMIT 3) AS tbl1;
आउटपुट
+--------------+--------------+ | MinimumValue | MaximumValue | +--------------+--------------+ | 10 | 100 | +--------------+--------------+
पहली 3 पंक्तियां: 10, 100, 50 → मिन=10, मैक्स=100
महत्वपूर्ण नोट्स
LIMITबिनाORDER BYके अनिर्धारित क्रम देता है (आमतौर पर इन्सर्शन ऑर्डर/क्लस्टर्ड इंडेक्स ऑर्डर)।- विशिष्ट क्रम के लिए:
(SELECT Value FROM MinAndMaxValueDemo ORDER BY Id LIMIT 3) - MySQL 8.0+ में विंडो फ़ंक्शन से भी संभव:
MIN(Value) OVER (ORDER BY Id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)लेकिन यह रनिंग मिन/मैक्स देता है, सबसेट का नहीं।
उपयोग केस
- पेजिनेटेड डेटा पर एग्रीगेशन।
- सैंपलिंग/सांख्यिकीय विश्लेषण।
- बड़े टेबल पर पूर्ण स्कैन से बचने के लिए हालिया N पंक्तियों पर मिन/मैक्स।