MySQL में MIN() और MAX() एग्रीगेट फ़ंक्शन का उपयोग करके आप एक ही क्वेरी में कई कॉलम के न्यूनतम और अधिकतम मान प्राप्त कर सकते हैं।
उदाहरण तालिका बनाना
mysql> CREATE TABLE DemoTable (FirstValue INT, SecondValue INT);
डेटा डालना
mysql> INSERT INTO DemoTable VALUES (10, 30), (30, 60), (100, 500), (50, 80);
डेटा देखना
mysql> SELECT * FROM DemoTable;
आउटपुट:
+------------+-------------+ | FirstValue | SecondValue | +------------+-------------+ | 10 | 30 | | 30 | 60 | | 100 | 500 | | 50 | 80 | +------------+-------------+
एक क्वेरी में सभी कॉलम के लिए MIN और MAX
mysql> SELECT
-> MIN(FirstValue), MIN(SecondValue),
-> MAX(FirstValue), MAX(SecondValue)
-> FROM DemoTable;
आउटपुट:
+-----------------+------------------+-----------------+------------------+ | MIN(FirstValue) | MIN(SecondValue) | MAX(FirstValue) | MAX(SecondValue) | +-----------------+------------------+-----------------+------------------+ | 10 | 30 | 100 | 500 | +-----------------+------------------+-----------------+------------------+
व्याख्या: प्रत्येक एग्रीगेट फ़ंक्शन स्वतंत्र रूप से अपने कॉलम पर काम करता है। NULL मान स्वचालित रूप से अनदेखे किए जाते हैं।
सिंगल कॉलम के लिए MIN/MAX के साथ पंक्ति प्राप्त करना:
-- FirstValue का अधिकतम मान वाली पंक्ति SELECT * FROM DemoTable WHERE FirstValue = (SELECT MAX(FirstValue) FROM DemoTable); -- या ORDER BY LIMIT (अधिक कुशल इंडेक्स के साथ) SELECT * FROM DemoTable ORDER BY FirstValue DESC LIMIT 1;
विंडो फ़ंक्शन (MySQL 8.0+): प्रत्येक पंक्ति के साथ MIN/MAX दिखाने के लिए:
SELECT
FirstValue, SecondValue,
MIN(FirstValue) OVER() AS MinFirst,
MAX(FirstValue) OVER() AS MaxFirst
FROM DemoTable;