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

MySQL-এ ডুপ্লিকেট সর্বোচ্চ মান সহ একাধিক সারি বের করা

সমস্যা

MAX() শুধু একটি মান দেয়। যদি সর্বোচ্চ মান একাধিক সারিতে থাকে, তবে সবগুলো সারি পেতে জয়েন বা সাবকোয়েরি লাগে।

সারণি ও ডেটা

mysql> create table DemoTable1389 (StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentMarks int);
mysql> insert into DemoTable1389(StudentMarks) values(40),(40),(68),(78),(97),(97),(97);

কোয়েরি (JOIN পদ্ধতি)

mysql> select tbl.StudentId, tbl.StudentMarks
    -> from DemoTable1389 tbl
    -> join (select max(StudentMarks) as MaxMarks from DemoTable1389) tbl1
    -> on tbl1.MaxMarks = tbl.StudentMarks;

ফলাফল

+-----------+--------------+
| StudentId | StudentMarks |
+-----------+--------------+
| 5         | 97           |
| 6         | 97           |
| 7         | 97           |
+-----------+--------------+

বিকল্প পদ্ধতি (MySQL 8.0+): উইন্ডো ফাংশন

SELECT StudentId, StudentMarks
FROM (
  SELECT *, RANK() OVER (ORDER BY StudentMarks DESC) as rnk
  FROM DemoTable1389
) t WHERE rnk = 1;

উইন্ডো ফাংশন আরও ফ্লেক্সিবল এবং পঠনযোগ্য।

  1. এক্সেলে ডুপ্লিকেট সারি সরানোর পদ্ধতি

  2. MySQL-এ মাস অনুযায়ী রেকর্ড সিলেক্ট করা (MONTH() ফাংশন)

  3. MySQL-এ GROUP BY HAVING এবং IN() ব্যবহার করে একাধিক শর্ত পূরণকারী সারি বের করা

  4. MySQL-এ একক কোয়ারি দিয়ে একটি কলামে একাধিক মান কিভাবে ইনসার্ট করবেন?