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

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

MySQL-এ একই ID 가진 রোদের কোনো নুমেরিক কলাম (যেমন price) যোগফল বের করতে GROUP BY এবং HAVING ব্যবহার করা হয়।

উদাহরণ

টেবিল তৈরি:

CREATE TABLE demo84 (id INT, price INT);

INSERT INTO demo84 VALUES (1, 2000), (1, 2000), (2, 1800), (2, 2200), (3, 1700);

টেবিলের ডেটা:

+------+-------+
| id   | price |
+------+-------+
| 1    | 2000  |
| 1    | 2000  |
| 2    | 1800  |
| 2    | 2200  |
| 3    | 1700  |
+------+-------+

কোয়েরি

ID অনুযায়ী গ্রুপ করে price যোগফল, এবং যোগফল ২০০০ বা তার বেশি হলে দেখাও:

SELECT id, SUM(price) AS Total 
FROM demo84 
GROUP BY id 
HAVING SUM(price) >= 2000;

আউটপুট

+------+-------+
| id   | Total |
+------+-------+
| 1    | 4000  |
| 2    | 4000  |
+------+-------+

ব্যাখ্যা:

  • GROUP BY id - একই ID 가진 রোগুলো এক গ্রুপে।
  • SUM(price) - প্রতিটি গ্রুপের price যোগফল।
  • HAVING SUM(price) >= 2000 - গ্রুপ ফিল্টার (WHERE হয় রো ফিল্টার, HAVING হয় গ্রুপ ফিল্টার)।
  • ID ১: ২০০০+২০০০=৪০০০ (>=২০০০ -> দেখানো হয়েছে)।
  • ID ২: ১৮০০+২২০০=৪০০০ (>=২০০০ -> দেখানো হয়েছে)।
  • ID ৩: ১৭০০ (<২০০০ -> বাদ পড়েছে)।

নোট: HAVING ক্লজে এগгреগেট ফাংশন (SUM, COUNT, AVG ইত্যাদি) ব্যবহার করা যায়, WHERE-এ ব্যবহার করা যায় না।

  1. MySQL-এ শর্তসাপেক্ষে কলামের যোগফল (SUM) বের করা

  2. MySQL-এ UNION ALL ব্যবহার করে কলামগুলোকে রোয়ে রূপান্তর করা

  3. MySQL에서 GROUP BY로 그룹핑하며 합계 구하기

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