SUM() এগ্রিগেট ফাংশন এবং GROUP BY কমান্ড ব্যবহার করে অন্য একটি কলামের প্রতিটি ডISTINCT ভ্যালুর জন্য যোগফল বের করা যায়। এটি বুঝতে একটি টেবিল তৈরি করা যাক। টেবিল তৈরির কোয়েরি:
mysql> create table SumOfEveryDistinct -> ( -> Id int not null, -> Amount int -> ); Query OK, 0 rows affected (0.59 sec)
ইনসার্ট কমান্ড দিয়ে কিছু রেকর্ড ইনসার্ট করা যাক। কোয়েরিটি হলো:
mysql> insert into SumOfEveryDistinct values(10,100); Query OK, 1 row affected (0.19 sec) mysql> insert into SumOfEveryDistinct values(11,200); Query OK, 1 row affected (0.20 sec) mysql> insert into SumOfEveryDistinct values(12,300); Query OK, 1 row affected (0.14 sec) mysql> insert into SumOfEveryDistinct values(10,400); Query OK, 1 row affected (0.20 sec) mysql> insert into SumOfEveryDistinct values(11,500); Query OK, 1 row affected (0.10 sec) mysql> insert into SumOfEveryDistinct values(12,600); Query OK, 1 row affected (0.13 sec) mysql> insert into SumOfEveryDistinct values(10,700); Query OK, 1 row affected (0.10 sec) mysql> insert into SumOfEveryDistinct values(11,800); Query OK, 1 row affected (0.18 sec) mysql> insert into SumOfEveryDistinct values(12,900); Query OK, 1 row affected (0.19 sec)
সিলেক্ট স্টেটমেন্ট দিয়ে সব রেকর্ড দেখানো যাক। কোয়েরিটি হলো:
mysql> select *from SumOfEveryDistinct;
আউটপুট নিচে দেওয়া হলো:
+----+--------+ | Id | Amount | +----+--------+ | 10 | 100 | | 11 | 200 | | 12 | 300 | | 10 | 400 | | 11 | 500 | | 12 | 600 | | 10 | 700 | | 11 | 800 | | 12 | 900 | +----+--------+ 9 rows in set (0.00 sec)
অন্য একটি কলামের প্রতিটি ডISTINCT ভ্যালুর জন্য যোগফল বের করার কোয়েরি নিচে দেওয়া হলো:
mysql> select Id, sum(Amount) as TotalSum from SumOfEveryDistinct -> group by Id;
আউটপুট নিচে দেওয়া হলো:
+----+----------+ | Id | TotalSum | +----+----------+ | 10 | 1200 | | 11 | 1500 | | 12 | 1800 | +----+----------+ 3 rows in set (0.00 sec)
ব্যাখ্যা: GROUP BY Id দিয়ে Id কলামের অনন্য (distinct) ভ্যালুগুলো অনুযায়ী গ্রুপ তৈরি হয়েছে। তারপর প্রতিটি গ্রুপের Amount কলামের মানের যোগফল SUM(Amount) দিয়ে বের করা হয়েছে। ফলস্বরূপ Id=10-র জন্য 100+400+700=1200, Id=11-র জন্য 200+500+800=1500, এবং Id=12-র জন্য 300+600+900=1800 পাওয়া গেছে।