MySQL-এ GROUP BY ক্লজ এবং এগريغেট ফাংশন (যেমন MAX()) ব্যবহার করে শর্তসাপেক্ষভাবে ডেটা গ্রুপ করা এবং প্রতিটি গ্রুপের সর্বোচ্চ মান বের করা যায়। নিচে একটি উদাহরণ দেওয়া হলো।
টেবিল তৈরি ও ডেটা ইনসার্ট
mysql> CREATE TABLE DemoTable (
StudentName VARCHAR(40),
StudentMarks INT
);
mysql> INSERT INTO DemoTable VALUES ('John', 78);
mysql> INSERT INTO DemoTable VALUES ('Chris', 48);
mysql> INSERT INTO DemoTable VALUES ('John', 67);
mysql> INSERT INTO DemoTable VALUES ('Chris', 89);
সকল রেকর্ড দেখানো
mysql> SELECT * FROM DemoTable;
আউটপুট:
+-------------+--------------+ | StudentName | StudentMarks | +-------------+--------------+ | John | 78 | | Chris | 48 | | John | 67 | | Chris | 89 | +-------------+--------------+
শর্তসাপেক্ষ GROUP BY কোয়েরি
প্রতিটি ছাত্রের সর্বোচ্চ নম্বর পেতে MAX() ফাংশন ব্যবহার করি।
mysql> SELECT StudentName, MAX(StudentMarks) AS StudentMarks
FROM DemoTable
GROUP BY StudentName;
ফলাফল:
+-------------+--------------+ | StudentName | StudentMarks | +-------------+--------------+ | John | 78 | | Chris | 89 | +-------------+--------------+
ব্যাখ্যা: একই নামের ছাত্রের একাধিক রেকর্ড থাকলে GROUP BY StudentName দিয়ে তাদের এক গোষ্ঠীতে আনা হয়েছে, তারপর MAX(StudentMarks) দিয়ে সে গোষ্ঠীর সর্বোচ্চ নম্বর বের করা হয়েছে।