UNION ALL और COUNT(*) के साथ दो टेबल्स का संयुक्त काउंट
दो टेबल्स से स्ट्रिंग मानों का संयुक्त काउंट प्राप्त करने के लिए COUNT(*) के साथ UNION ALL का उपयोग करें।
पहली टेबल बनाएं:
mysql> CREATE TABLE DemoTable1 (
Name VARCHAR(20)
);
पहली टेबल में स्ट्रिंग मान इन्सर्ट करें:
mysql> INSERT INTO DemoTable1 VALUES ('Chris');
mysql> INSERT INTO DemoTable1 VALUES ('Robert');
mysql> INSERT INTO DemoTable1 VALUES ('Mike');
mysql> INSERT INTO DemoTable1 VALUES ('Robert');
पहली टेबल के रिकॉर्ड्स देखें:
mysql> SELECT * FROM DemoTable1;
आउटपुट:
+--------+ | Name | +--------+ | Chris | | Robert | | Mike | | Robert | +--------+
दूसरी टेबल बनाएं:
mysql> CREATE TABLE DemoTable2 (
Name VARCHAR(40)
);
दूसरी टेबल में स्ट्रिंग मान इन्सर्ट करें:
mysql> INSERT INTO DemoTable2 VALUES ('Robert');
mysql> INSERT INTO DemoTable2 VALUES ('Chris');
mysql> INSERT INTO DemoTable2 VALUES ('Robert');
mysql> INSERT INTO DemoTable2 VALUES ('David');
दूसरी टेबल के रिकॉर्ड्स देखें:
mysql> SELECT * FROM DemoTable2;
आउटपुट:
+--------+ | Name | +--------+ | Robert | | Chris | | Robert | | David | +--------+
दोनों टेबल्स से स्ट्रिंग मानों का संयुक्त काउंट प्राप्त करने के लिए क्वेरी:
mysql> SELECT tbl.Name, COUNT(*) AS Total_Count
FROM (
SELECT Name FROM DemoTable1
UNION ALL
SELECT Name FROM DemoTable2
) tbl
GROUP BY tbl.Name;
आउटपुट:
+--------+-------------+ | Name | Total_Count | +--------+-------------+ | Chris | 2 | | Robert | 4 | | Mike | 1 | | David | 1 | +--------+-------------+
व्याख्या:
- UNION ALL: दोनों टेबल्स के सभी रिकॉर्ड्स को जोड़ता है (डुप्लिकेट्स सहित)
- UNION vs UNION ALL: UNION डुप्लिकेट्स हटा देता है, UNION ALL सभी पंक्तियों को रखता है
- सबक्वेरी (tbl): संयुक्त परिणाम सेट को एक डिराइव्ड टेबल के रूप में ट्रीट करता है
- GROUP BY tbl.Name: नाम के अनुसार ग्रुपित करता है
- COUNT(*): प्रत्येक नाम की कुल घटनाओं को गिनता है
गणना:
- Chris: टेबल1 में 1 + टेबल2 में 1 = 2
- Robert: टेबल1 में 2 + टेबल2 में 2 = 4
- Mike: टेबल1 में 1 + टेबल2 में 0 = 1
- David: टेबल1 में 0 + टेबल2 में 1 = 1