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

MySQL-এ ছাত্রের সর্বোচ্চ মার্কস বের করা (MAX + GROUP BY)

MySQL-এ একই ছাত্রের একাধিক রো থাকলে (Marks1, Marks2) প্রতিটি মার্কস কলামের সর্বোচ্চ মান বের করতে MAX() এবং GROUP BY ব্যবহার করা হয়।

টেবিল এবং ডেটা

CREATE TABLE DemoTable (
    StudentEmailId VARCHAR(20),
    Marks1 INT,
    Marks2 INT
);

INSERT INTO DemoTable VALUES('John@gmail.com',45,32);
INSERT INTO DemoTable VALUES('John@gmail.com',32,45);
INSERT INTO DemoTable VALUES('Carol@gmail.com',32,45);
INSERT INTO DemoTable VALUES('David@gmail.com',45,32);

কুয়েরি: ছাত্র অনুযায়ী Marks1 এবং Marks2-এর MAX

SELECT 
    StudentEmailId,
    MAX(Marks1) AS MaxMarks1,
    MAX(Marks2) AS MaxMarks2
FROM DemoTable 
GROUP BY StudentEmailId;

ফলাফল

+-----------------+-------------+-------------+
| StudentEmailId  | MaxMarks1   | MaxMarks2   |
+-----------------+-------------+-------------+
| John@gmail.com  | 45          | 45          |
| Carol@gmail.com | 32          | 45          |
| David@gmail.com | 45          | 32          |
+-----------------+-------------+-------------+

ব্যাখ্যা

  • GROUP BY StudentEmailId — একই ইমেইলের রোগুলো গ্রুপ করে
  • MAX(Marks1) — গ্রুপে Marks1-এর সর্বোচ্চ মান
  • MAX(Marks2) — গ্রুপে Marks2-এর সর্বোচ্চ মান
  • John: Marks1=(45,32)→45, Marks2=(32,45)→45

এক্সটেনশন: সবচেয়ে বড় মার্কস (দুই কলামের মধ্যে)

SELECT StudentEmailId, GREATEST(MAX(Marks1), MAX(Marks2)) AS OverallMax
FROM DemoTable GROUP BY StudentEmailId;

পিভট/ট্রান্সপোজ (MySQL 8.0+)

SELECT StudentEmailId,
    MAX(CASE WHEN subject = 'Marks1' THEN score END) AS Marks1,
    MAX(CASE WHEN subject = 'Marks2' THEN score END) AS Marks2
FROM (
    SELECT StudentEmailId, 'Marks1' AS subject, Marks1 AS score FROM DemoTable
    UNION ALL
    SELECT StudentEmailId, 'Marks2', Marks2 FROM DemoTable
) t GROUP BY StudentEmailId;
  1. MySQL-এ নির্দিষ্ট মাস এবং বছরের ভিত্তিতে রেকর্ড ফিল্টার করা

  2. MySQL-এ নির্দিষ্ট ছাত্রের মার্কস গোষ্ঠীবদ্ধ করুন এবং প্রতিটি ছাত্রের জন্য মোট মার্কস আলাদা কলামে প্রদর্শন করুন

  3. MySQL-এ GROUP BY এবং MAX() দিয়ে একই নামের ছাত্রদের সর্বোচ্চ বয়স বের করা

  4. MySQL-এ ন্যূনতম ও সর্বোচ্চ মান পাওয়া (Getting Minimum and Maximum Value)