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

MySQL-এ DISTINCT, ORDER BY DESC, LIMIT OFFSET ব্যবহার করে Nth সর্বোচ্চ মান বের করুন

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 ইত্যাদি সহজে)।

  1. MySQL IN() 절에 단일 값만 지정해도 되나요?

  2. MySQL에서 N번째로 큰 값 찾기 (LIMIT 오프셋 활용)

  3. MySQL-এ ভ্যালু ০ হলে অন্য কলাম থেকে ডেটা সিলেক্ট করা

  4. MySQL-এ সর্বোচ্চ বেতন (Highest Salary) বের করা