दो कॉलम के योग का अधिकतम मान वाली पंक्ति ढूंढने के लिए सबक्वेरी में MAX(कॉलम1 + कॉलम2) का उपयोग करें।
सिंटैक्स
SELECT * FROM टेबल_नाम WHERE कॉलम1 + कॉलम2 = (SELECT MAX(कॉलम1 + कॉलम2) FROM टेबल_नाम);
उदाहरण
1. टेबल बनाएं
mysql> CREATE TABLE DemoTable1587 (Value1 INT, Value2 INT);
2. डेटा डालें
mysql> INSERT INTO DemoTable1587 VALUES(30, 50); -- योग: 80 mysql> INSERT INTO DemoTable1587 VALUES(80, 90); -- योग: 170 (अधिकतम) mysql> INSERT INTO DemoTable1587 VALUES(40, 67); -- योग: 107
3. क्वेरी
mysql> SELECT * FROM DemoTable1587
-> WHERE Value1 + Value2 = (SELECT MAX(Value1 + Value2) FROM DemoTable1587);
4. परिणाम
+--------+--------+ | Value1 | Value2 | +--------+--------+ | 80 | 90 | +--------+--------+
विकल्प: ORDER BY LIMIT (अधिक कुशल)
SELECT * FROM DemoTable1587 ORDER BY (Value1 + Value2) DESC LIMIT 1;
तुलना
| विधि | पास | इंडेक्स उपयोग | पठनीयता |
|---|---|---|---|
| सबक्वेरी MAX | 2 | मुश्किल | स्पष्ट इरादा |
| ORDER BY LIMIT | 1 | संभव (फंक्शनल इंडेक्स) | सरल |
एकाधिक अधिकतम होने पर
-- सबक्वेरी: सभी अधिकतम पंक्तियां लौटाता है WHERE Value1 + Value2 = (SELECT MAX(Value1 + Value2) FROM ...) -- ORDER BY LIMIT 1: केवल एक पंक्ति (मनमाना)
संबंधित: न्यूनतम योग
SELECT * FROM DemoTable1587 WHERE Value1 + Value2 = (SELECT MIN(Value1 + Value2) FROM DemoTable1587); -- या SELECT * FROM DemoTable1587 ORDER BY (Value1 + Value2) ASC LIMIT 1;
प्रदर्शन टिप
बड़े टेबल पर बार-बार क्वेरी के लिए, sum_col INT AS (Value1 + Value2) STORED जेनरेटेड कॉलम और उस पर इंडेक्स बनाएं।