MySQL-এ GROUP BY দিয়ে গ্রুপভিত্তিক যোগফল
একই কলাম মান (যেমন ClientSerialNumber) ভাগ করা রোগুলির জন্য অন্য কলামের (ClientCost) যোগফল বের করতে GROUP BY সাথে SUM() ব্যবহার করা হয়।
সিনট্যাক্স
SELECT groupColumn, SUM(valueColumn) AS TotalSum FROM yourTableName GROUP BY groupColumn;
উদাহরণ সহ ব্যাখ্যা
টেবিল তৈরি:
mysql> CREATE TABLE sumOfFieldsDemo (
-> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> ClientSerialNumber VARCHAR(100),
-> ClientCost INT
-> );
ডেটা ইনসার্ট:
mysql> INSERT INTO sumOfFieldsDemo(ClientSerialNumber, ClientCost) VALUES('1111', 450);
mysql> INSERT INTO sumOfFieldsDemo(ClientSerialNumber, ClientCost) VALUES('2222', 550);
mysql> INSERT INTO sumOfFieldsDemo(ClientSerialNumber, ClientCost) VALUES('3333', 150);
mysql> INSERT INTO sumOfFieldsDemo(ClientSerialNumber, ClientCost) VALUES('3333', 250);
mysql> INSERT INTO sumOfFieldsDemo(ClientSerialNumber, ClientCost) VALUES('2222', 1000);
mysql> INSERT INTO sumOfFieldsDemo(ClientSerialNumber, ClientCost) VALUES('1111', 1000);
mysql> INSERT INTO sumOfFieldsDemo(ClientSerialNumber, ClientCost) VALUES('1111', 500);
mysql> INSERT INTO sumOfFieldsDemo(ClientSerialNumber, ClientCost) VALUES('4444', 100);
বর্তমান ডেটা:
mysql> SELECT * FROM sumOfFieldsDemo;
+----+--------------------+------------+ | Id | ClientSerialNumber | ClientCost | +----+--------------------+------------+ | 1 | 1111 | 450 | | 2 | 2222 | 550 | | 3 | 3333 | 150 | | 4 | 3333 | 250 | | 5 | 2222 | 1000 | | 6 | 1111 | 1000 | | 7 | 1111 | 500 | | 8 | 4444 | 100 | +----+--------------------+------------+
সিরিয়াল নম্বর অনুযায়ী মোট খরচ:
mysql> SELECT Id, ClientSerialNumber, SUM(ClientCost) AS TotalSum
-> FROM sumOfFieldsDemo
-> GROUP BY ClientSerialNumber;
ফলাফল:
+----+--------------------+----------+ | Id | ClientSerialNumber | TotalSum | +----+--------------------+----------+ | 1 | 1111 | 1950 | | 2 | 2222 | 1550 | | 3 | 3333 | 400 | | 8 | 4444 | 100 | +----+--------------------+----------+
ব্যাখ্যা: 1111: 450+1000+500=1950। 2222: 550+1000=1550। 3333: 150+250=400।