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

MySQL में दो तालिकाओं के अधिकतम मानों में से न्यूनतम मान कैसे प्राप्त करें?

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;

चरण-दर-चरण

  1. MAX(Value) DemoTable1 से: 78
  2. MAX(Value) DemoTable2 से: 90
  3. UNION परिणाम: 78, 90
  4. MIN() बाहरी क्वेरी: 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;

उपयोग केस

  • शार्डेड तालिकाओं में वैश्विक अधिकतम/न्यूनतम
  • विभाजित डेटा सेट पर सांख्यिकी
  • बेंचमार्किंग और तुलना
  1. - MySQL में NULL और गैर-NULL मानों वाले एकाधिक कॉलम से अधिकतम मान कैसे प्राप्त करें?

    MySQL में एकाधिक कॉलम से प्रति पंक्ति अधिकतम मान प्राप्त करने के लिए GREATEST() के साथ COALESCE() का उपयोग करें। COALESCE NULL को डिफ़ॉल्ट मान (जैसे 0) में बदलता है। फ़ंक्शन COALESCE(val, default) - पहला गैर-NULL मान लौटाता है GREATEST(val1, val2, ...) - सबसे बड़ा मान लौटाता है उदाहरण तालिका बना

  1. - MySQL में GROUP BY और MIN() से डुप्लिकेट कॉलम मान वाले समूह का न्यूनतम मान प्राप्त करें

    किसी कॉलम (जैसे Class) के डुप्लिकेट मान वाले समूहों में से दूसरे कॉलम (जैसे Amount) का न्यूनतम मान प्राप्त करने के लिए GROUP BY और MIN() एग्रीगेट फ़ंक्शन का उपयोग करें। टेबल बनाएं mysql> CREATE TABLE DemoTable1875 ( Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Class VARCHAR(20), Amoun

  1. - MySQL में GROUP_CONCAT और CASE से अलग शर्तों वाले समान कॉलम के मान जोड़ें

    एक ही कॉलम (Name) की अलग-अलग शर्तों (Subject) के मानों को जोड़ने के लिए CASE के साथ सशर्त एग्रीगेशन और CONCAT या GROUP_CONCAT का उपयोग करें। टेबल बनाएं mysql> CREATE TABLE DemoTable1869 ( Id INT, Subject VARCHAR(20), Name VARCHAR(20) ); डेटा डालें mysql> INSERT INTO DemoTable1869 VALUES(