MySQL में UNION और एग्रीगेट फंक्शन: दो टेबल से संयुक्त मैक्स/मिन
दो टेबल के कॉलम मानों को संयोजित करके समग्र अधिकतम और न्यूनतम मान खोजने के लिए UNION के साथ MAX() और MIN() का उपयोग करें।
उदाहरण: दो टेबल के स्कोर से उच्चतम और निम्नतम
पहली टेबल:
CREATE TABLE DemoTable1 (
UniqueId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Score1 INT
);
INSERT INTO DemoTable1 (Score1) VALUES (56), (76), (65);
दूसरी टेबल:
CREATE TABLE DemoTable2 (
UniqueId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Score2 INT
);
INSERT INTO DemoTable2 (Score2) VALUES (67), (94), (98);
संयुक्त मैक्स और मिन खोजें
SELECT
MAX(commonValue) AS Highest_Value,
MIN(commonValue) AS Lowest_Value
FROM (
SELECT Score1 AS commonValue FROM DemoTable1
UNION
SELECT Score2 AS commonValue FROM DemoTable2
) AS combined;
परिणाम:
+---------------+--------------+ | Highest_Value | Lowest_Value | +---------------+--------------+ | 98 | 56 | +---------------+--------------+
चरण-दर-चरण
UNION— दोनों टेबल के स्कोर को एक कॉलम (commonValue) में संयोजित करता है (डुप्लिकेट हटाता है)UNION ALL— यदि डुप्लिकेट रखने हों तो उपयोग करें- बाहरी क्वेरी — संयुक्त परिणाम पर
MAX()औरMIN()लागू करती है
वैकल्पिक: UNION ALL का उपयोग
SELECT
MAX(commonValue) AS Highest_Value,
MIN(commonValue) AS Lowest_Value
FROM (
SELECT Score1 AS commonValue FROM DemoTable1
UNION ALL
SELECT Score2 AS commonValue FROM DemoTable2
) AS combined;
UNION ALL तेज है क्योंकि डुप्लिकेट हटाने का ओवरहेड नहीं होता। मैक्स/मिन के लिए डुप्लिकेट मायने नहीं रखते, इसलिए UNION ALL बेहतर है।
एक क्वेरी में दोनों टेबल के अलग-अलग मैक्स/मिन
SELECT
(SELECT MAX(Score1) FROM DemoTable1) AS Max1,
(SELECT MIN(Score1) FROM DemoTable1) AS Min1,
(SELECT MAX(Score2) FROM DemoTable2) AS Max2,
(SELECT MIN(Score2) FROM DemoTable2) AS Min2;