UNION ALL দিয়ে মাল্টি-টেবিল সাম
একই কাঠামোর একাধিক টেবিলের একটি কলামের মোট সাম করতে UNION ALL দিয়ে সব রো কম্বাইন করে SUM() নিন। UNION (ডুপ্লিকেট রিমুভ) ব্যবহার করলে ফলাফল ভুল হতে পারে।
সিনট্যাক্স
SELECT SUM(tbl.col) AS TotalPrice
FROM (
SELECT col FROM table1
UNION ALL
SELECT col FROM table2
) tbl;
উদাহরণ
Products1 টেবিল
mysql> create table Products1 (
-> ProductId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> ProductName varchar(20),
-> ProductPrice int
-> );
Query OK, 0 rows affected (0.50 sec)
mysql> insert into Products1(ProductName,ProductPrice) values('Product-1',100);
Query OK, 1 row affected (0.22 sec)
mysql> insert into Products1(ProductName,ProductPrice) values('Product-2',200);
Query OK, 1 row affected (0.34 sec)
mysql> insert into Products1(ProductName,ProductPrice) values('Product-3',700);
Query OK, 1 row affected (0.15 sec)
Products2 টেবিল
mysql> create table Products2 (
-> ProductId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> ProductName varchar(20),
-> ProductPrice int
-> );
Query OK, 0 rows affected (0.63 sec)
mysql> insert into Products2(ProductName,ProductPrice) values('Product-1',500);
Query OK, 1 row affected (0.24 sec)
mysql> insert into Products2(ProductName,ProductPrice) values('Product-4',100);
Query OK, 1 row affected (0.13 sec)
mysql> insert into Products2(ProductName,ProductPrice) values('Product-5',400);
Query OK, 1 row affected (0.10 sec)
দুই টেবিলের ProductPrice সাম
mysql> SELECT SUM(tbl.ProductPrice) AS TotalPrice
-> FROM (SELECT ProductPrice FROM Products1
-> UNION ALL
-> SELECT ProductPrice FROM Products2) tbl;
আউটপুট
+------------+ | TotalPrice | +------------+ | 2000 | +------------+
গণনা: ১০০+২০০+৭০০ + ৫০০+১০০+৪০০ = ২০০০। UNION ALL ডুপ্লিকেট রাখে (Product-1 দুবার আছে), যা সঠিক ফলাফল দেয়।