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

MySQL में UNION ALL का उपयोग करके एकाधिक टेबल के कॉलम का योग करना

समाधान: UNION ALL के साथ उपक्वेरी

एकाधिक टेबल के समान कॉलम का कुल योग प्राप्त करने के लिए UNION ALL का उपयोग करके डेटा संयोजित करें, फिर बाहरी क्वेरी में SUM() लागू करें।

सिंटैक्स

SELECT SUM(tbl.columnName) AS TotalSum
FROM (
    SELECT columnName FROM table1
    UNION ALL
    SELECT columnName FROM table2
    -- अधिक टेबल जोड़ें
) tbl;

व्यावहारिक उदाहरण

पहली टेबल: Products1

mysql> CREATE TABLE Products1 (
    -> ProductId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> ProductName VARCHAR(20),
    -> ProductPrice INT
    -> );

mysql> INSERT INTO Products1(ProductName, ProductPrice) VALUES
    -> ('Product-1', 100), ('Product-2', 200), ('Product-3', 700);

दूसरी टेबल: Products2

mysql> CREATE TABLE Products2 (
    -> ProductId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> ProductName VARCHAR(20),
    -> ProductPrice INT
    -> );

mysql> INSERT INTO Products2(ProductName, ProductPrice) VALUES
    -> ('Product-1', 500), ('Product-4', 100), ('Product-5', 400);

योग क्वेरी

mysql> SELECT SUM(tbl.ProductPrice) AS TotalPrice
    -> FROM (
    ->     SELECT ProductPrice FROM Products1
    ->     UNION ALL
    ->     SELECT ProductPrice FROM Products2
    -> ) tbl;

परिणाम

+------------+
| TotalPrice |
+------------+
| 2000       |
+------------+

गणना विवरण

टेबलउत्पादकीमत
Products1Product-1100
Products1Product-2200
Products1Product-3700
Products2Product-1500
Products2Product-4100
Products2Product-5400
कुल2000

महत्वपूर्ण: UNION vs UNION ALL

  • UNION: डुप्लीकेट पंक्तियाँ हटाता है (धीमा)
  • UNION ALL: सभी पंक्तियाँ रखता है (तेज़, योग के लिए सही)
  • यदि Products1 और Products2 दोनों में Product-1 की कीमत 100 होती, तो UNION केवल एक बार गिनता

वैकल्पिक: अलग-अलग योग फिर जोड़ना

SELECT 
    (SELECT SUM(ProductPrice) FROM Products1) +
    (SELECT SUM(ProductPrice) FROM Products2) AS TotalPrice;

यह तरीका अक्सर तेज़ होता है क्योंकि यह अस्थायी टेबल नहीं बनाता।

  1. - MySQL में कई कॉलम द्वारा पंक्तियों को कैसे ऑर्डर करें?

    उदाहरण टेबल बनाएं: mysql> create table DemoTable ( -> FirstName varchar(20), -> LastName varchar(20) -> ); Query OK, 0 rows affected (1.44 sec) रिकॉर्ड डालें: mysql> insert into DemoTable values(John, Smith); Query OK, 1 row affected (0.35 sec) mysql> insert into DemoT

  1. - MySQL में एकाधिक टेबल्स की पंक्तियों को एक ही क्वेरी में गिनना

    MySQL में एक से अधिक टेबल्स की पंक्ति संख्या (row count) एक ही क्वेरी में प्राप्त करने के लिए सबक्वेरीज़ का उपयोग करें। प्रत्येक टेबल के लिए अलग COUNT(*) सबक्वेरी लिखें और उन्हें SELECT सूची में रखें। सिंटैक्स SELECT (SELECT COUNT(*) FROM table1) AS table1_count, (SELECT COUNT(*) FROM tabl

  1. - MySQL में एक ही क्वेरी में कई कॉलम के डेटा टाइप को कैसे बदलें?

    MySQL में एक साथ कई कॉलम के डेटा टाइप बदलना MySQL में एक ही ALTER TABLE स्टेटमेंट का उपयोग करके आप एक साथ कई कॉलम के डेटा टाइप को संशोधित कर सकते हैं। इसके लिए सिंटैक्स निम्नलिखित है: ALTER TABLE yourTableName MODIFY COLUMN yourColumnName1 yourDataType1, MODIFY COLUMN yourColumnName2 yourDataType2