MySQL-এ টেবিল থেকে N-তম সর্বোচ্চ মান (Nth highest) বের করতে DISTINCT, ORDER BY DESC এবং LIMIT offset, count ব্যবহার করা হয়।
সিনট্যাক্স
SELECT DISTINCT yourColumnName FROM yourTableName
ORDER BY yourColumnName DESC LIMIT (N-1), 1;
উদাহরণ: ৩য় সর্বোচ্চ মান (N=3)
১. টেবিল তৈরি করুন
mysql> CREATE TABLE DemoTable1594 (Marks INT);
২. ডেটা ইনসার্ট করুন
mysql> INSERT INTO DemoTable1594 VALUES(76), (95), (56), (96), (89);
৩. সব রেকর্ড দেখুন
mysql> SELECT * FROM DemoTable1594;
আউটপুট: 76, 95, 56, 96, 89
৪. ৩য় সর্বোচ্চ মান বের করুন (LIMIT 2, 1 = OFFSET 2, LIMIT 1)
mysql> SELECT DISTINCT Marks FROM DemoTable1594 ORDER BY Marks DESC LIMIT 2, 1;
৫. ফলাফল
+-------+
| Marks |
+-------+
| 89 |
+-------+
ব্যাখ্যা:
- সর্টেড ডিসেন্ডিং: 96, 95, 89, 76, 56
DISTINCT- ডুপ্লিকেট মান থাকলে একবারই গণনা।LIMIT 2, 1- প্রথম ২টি স্কিপ (OFFSET 2), পরের ১টি নেয় (৩য় সর্বোচ্চ: 89)।
MySQL 8.0+ Window Function (আধুনিক):
SELECT Marks FROM (
SELECT DISTINCT Marks, ROW_NUMBER() OVER (ORDER BY Marks DESC) AS rn
FROM DemoTable1594
) t WHERE rn = 3;
এটি আরও পঠনযোগ্য এবং ফ্লেক্সিবল (Nth highest, lowest, percentile ইত্যাদি সহজে)।