কম্পিউটার টিউটোরিয়াল

MySQL-এ GROUP BY ব্যবহার করে গ্রুপ অনুযায়ী সারি পাওয়া (SUM সহ)

গ্রুপ অনুযায়ী সারি পেতে এবং অ্যাগ্রিগেশন (যেমন 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 মোড অন থাকলে)।

  1. MySQL-এ নির্দিষ্ট সারি মাত্র ডিলিট করার পদ্ধতি (NOT IN ব্যবহার)

  2. MySQL-এ নির্দিষ্ট শর্ত অনুযায়ী সিঙ্গেল রো বের করা

  3. MySQL-এ GROUP BY ব্যবহার করে ফিল্ড আপডেট করা

  4. MySQL-এ GROUP BY HAVING ব্যবহার করে একই ID 가진 রোদের SUM করা