Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में MAX() और सबक्वेरी से दो कॉलम के योग का अधिकतम मान वाली पंक्ति चुनें

दो कॉलम के योग का अधिकतम मान वाली पंक्ति ढूंढने के लिए सबक्वेरी में 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;

तुलना

विधिपासइंडेक्स उपयोगपठनीयता
सबक्वेरी MAX2मुश्किलस्पष्ट इरादा
ORDER BY LIMIT1संभव (फंक्शनल इंडेक्स)सरल

एकाधिक अधिकतम होने पर

-- सबक्वेरी: सभी अधिकतम पंक्तियां लौटाता है
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 जेनरेटेड कॉलम और उस पर इंडेक्स बनाएं।

  1. - क्या MySQL में SELECT * 40 कॉलम सूचीबद्ध करने से तेज है?

    SELECT * बनाम स्पष्ट कॉलम सूची: प्रदर्शन तुलना SELECT * सभी कॉलम लाता है, जबकि स्पष्ट कॉलम सूची केवल आवश्यक कॉलम लाती है। स्पष्ट सूची तेज होती है क्योंकि: नेटवर्क ट्रैफिक कम होता है डिस्क I/O कम होता है क्वेरी ऑप्टिमाइज़र बेहतर इंडेक्स उपयोग कर सकता है स्कीमा परिवर्तन से क्वेरी नहीं टूटती उदाहरण

  1. - MySQL में ग्रुपिंग के साथ सेलेक्ट और सम?

    सम करने के लिए एग्रीगेट फंक्शन SUM() का उपयोग करें। इसके साथ MySQL GROUP BY का उपयोग करके ग्रुप करें। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable -> ( -> ProductName varchar(20), -> ProductQuantity int, -> ProductPrice int -> ); Query OK, 0 rows affected (0.63 sec) इ

  1. - MySQL में दो अलग-अलग कीज़ (Keys) पर खोज: OR vs UNION

    दो अलग-अलग इंडेक्स्ड कॉलम (Keys) पर खोज करते समय, OR` की तुलना में `UNION` अक्सर बेहतर प्रदर्शन देता है क्योंकि यह प्रत्येक SELECT को अलग-अलग इंडेक्स उपयोग करने देता है। तरीका 1: OR ऑपरेटर (कम अनुकूलित) SELECT field1_index, field2_index FROM tableName WHERE field1_index = 1 OR field2_index = 1; M