একই নামের কলাম থাকা একাধিক টেবিল থেকে যোগফল বের করতে UNION ALL এবং SUM() ফাংশন ব্যবহার করতে হয়। ৫টি টেবিল তৈরি করি:
mysql> CREATE TABLE DemoTable1977 (UP INT); mysql> INSERT INTO DemoTable1977 VALUES(10), (20); mysql> CREATE TABLE DemoTable1978 (UP INT); mysql> INSERT INTO DemoTable1978 VALUES(30); mysql> CREATE TABLE DemoTable1979 (UP INT); mysql> INSERT INTO DemoTable1979 VALUES(40); mysql> CREATE TABLE DemoTable1980 (UP INT); mysql> INSERT INTO DemoTable1980 VALUES(50); mysql> CREATE TABLE DemoTable1981 (UP INT); mysql> INSERT INTO DemoTable1981 VALUES(60);
সব টেবিলের UP কলামের যোগফল বের করার কোয়েরি:
mysql> SELECT SUM(TotalSum) FROM (
SELECT SUM(UP) AS TotalSum FROM DemoTable1977
UNION ALL
SELECT SUM(UP) FROM DemoTable1978
UNION ALL
SELECT SUM(UP) FROM DemoTable1979
UNION ALL
SELECT SUM(UP) FROM DemoTable1980
UNION ALL
SELECT SUM(UP) FROM DemoTable1981
) tbl;
আউটপুট:
+---------------+ | sum(TotalSum) | +---------------+ | 210 | +---------------+ 1 row in set (0.00 sec)
ব্যাখ্যা
প্রতিটি টেবিল থেকে SUM(UP) বের করে UNION ALL দিয়ে একসাথে জোড়া দিয়েছি। তারপর বাইরের কোয়েরিতে SUM(TotalSum) দিয়ে মোট যোগফল পাওয়া যাচ্ছে। এই পদ্ধতিতে যেকোনো সংখ্যক টেবিল থেকে একই কলামের যোগফল বের করা যায়।