MySQL में UNION और सबक्वेरी का उपयोग करके दो तालिकाओं के अधिकतम मानों में से न्यूनतम मान प्राप्त किया जा सकता है।
उदाहरण
पहली तालिका:
mysql> CREATE TABLE DemoTable1 (Value INT);
mysql> INSERT INTO DemoTable1 VALUES (60), (78), (57);
दूसरी तालिका:
mysql> CREATE TABLE DemoTable2 (Value INT);
mysql> INSERT INTO DemoTable2 VALUES (90), (67);
क्वेरी
mysql> SELECT MIN(tbl.Value) AS Value
-> FROM (
-> SELECT MAX(Value) AS Value FROM DemoTable1
-> UNION
-> SELECT MAX(Value) AS Value FROM DemoTable2
-> ) AS tbl;
चरण-दर-चरण
MAX(Value)DemoTable1 से: 78MAX(Value)DemoTable2 से: 90UNIONपरिणाम: 78, 90MIN()बाहरी क्वेरी: 78
परिणाम
+-------+
| Value |
+-------+
| 78 |
+-------+
UNION vs UNION ALL
UNION- डुप्लिकेट हटाता है (धीमा)UNION ALL- डुप्लिकेट रखता है (तेज़)- यहां कोई फर्क नहीं क्योंकि MAX मान अद्वितीय हैं
विस्तार: N तालिकाओं के लिए
SELECT MIN(MaxVal) FROM (
SELECT MAX(Value) AS MaxVal FROM Table1
UNION ALL SELECT MAX(Value) FROM Table2
UNION ALL SELECT MAX(Value) FROM Table3
-- अधिक तालिकाएं जोड़ें
) AS t;
उपयोग केस
- शार्डेड तालिकाओं में वैश्विक अधिकतम/न्यूनतम
- विभाजित डेटा सेट पर सांख्यिकी
- बेंचमार्किंग और तुलना