গ্রুপ অনুযায়ী সারি পেতে এবং অ্যাগ্রিগেশন (যেমন SUM) করতে GROUP BY ব্যবহার করুন। প্রথমে একটি টেবিল তৈরি করি:
mysql> CREATE TABLE DemoTable (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Subject VARCHAR(20),
Price INT
);
রেকর্ড যোগ করি:
mysql> INSERT INTO DemoTable(Subject, Price) VALUES('MySQL', 456), ('MySQL', 456), ('MongoDB', 56), ('MongoDB', 60), ('Java', 100), ('Java', 130);
সকল রেকর্ড দেখতে:
mysql> SELECT * FROM DemoTable;
আউটপুট:
+----+---------+-------+ | Id | Subject | Price | +----+---------+-------+ | 1 | MySQL | 456 | | 2 | MySQL | 456 | | 3 | MongoDB | 56 | | 4 | MongoDB | 60 | | 5 | Java | 100 | | 6 | Java | 130 | +----+---------+-------+
Subject অনুযায়ী গ্রুপ করে মোট Price বের করা:
mysql> SELECT SUM(Price) AS Total, Subject FROM DemoTable GROUP BY Subject;
আউটপুট:
+-------+---------+ | Total | Subject | +-------+---------+ | 912 | MySQL | | 116 | MongoDB | | 230 | Java | +-------+---------+
ব্যাখ্যা:
GROUP BY Subject: একই Subject वाले সারি গুলো এক গ্রুপে।SUM(Price): প্রতিটি গ্রুপের Price যোগফল।AS Total: ফলাফল কলামের নাম।
অন্যান্য অ্যাগ্রিগেট ফাংশন: AVG(), MIN(), MAX(), COUNT(), GROUP_CONCAT() ইত্যাদি গ্রুপের সাথে ব্যবহার করা যায়।
নোট: SELECT-এ থাকা নন-অ্যাগ্রিগেট কলাম অবশ্যই GROUP BY-এ থাকতে হবে (MySQL-এ ONLY_FULL_GROUP_BY মোড অন থাকলে)।