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

MySQL-এ ORDER BY ... LIMIT দিয়ে টপ ৩ হাইএস্ট স্কোর বের করা

MySQL-এ সর্বোচ্চ মান এবং রো বের করার জন্য ORDER BY ... DESC এবং LIMIT ক্লজ ব্যবহার করা হয়। এটি র‍্যাঙ্কিং, লিডারবোর্ড, টপ-এন কুয়েরির জন্য স্ট্যান্ডার্ড পদ্ধতি।

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

CREATE TABLE DemoTable1614 (
    StudentName VARCHAR(20),
    StudentScore INT
);

INSERT INTO DemoTable1614 VALUES('Adam',65);
INSERT INTO DemoTable1614 VALUES('Chris',89);
INSERT INTO DemoTable1614 VALUES('Bob',58);
INSERT INTO DemoTable1614 VALUES('Sam',98);
INSERT INTO DemoTable1614 VALUES('Mike',87);
INSERT INTO DemoTable1614 VALUES('Carol',79);

কুয়েরি: টপ ৩ স্কোর

SELECT * FROM DemoTable1614 
ORDER BY StudentScore DESC 
LIMIT 3;

ফলাফল

+-------------+--------------+
| StudentName | StudentScore |
+-------------+--------------+
| Sam         | 98           |
| Chris       | 89           |
| Mike        | 87           |
+-------------+--------------+

বিকল্প ক্লজ

  • LIMIT 3 OFFSET 0 — প্রথম ৩টি (ডিফল্ট)
  • LIMIT 3 OFFSET 3 — ৪র্থ থেকে ৬ষ্ঠ (পেজিনেশন)
  • LIMIT 10, 3 — শর্টহ্যান্ড (অফসেট ১০, কাউন্ট ৩)

টাই হ্যান্ডলিং (RANK / DENSE_RANK - MySQL 8.0+)

SELECT StudentName, StudentScore,
    RANK() OVER (ORDER BY StudentScore DESC) AS rnk
FROM DemoTable1614;

টাই থাকলে RANK গ্যাপ রেখে, DENSE_RANK গ্যাপ ছাড়া র‍্যাঙ্ক দেয়।

  1. MySQL-এ ORDER BY ... LIMIT দিয়ে টপ ৩ হাইএস্ট স্কোর বের করা

  2. MySQL-এ SELECT ... INTO @variable ব্যবহার করে নির্দিষ্ট রো থেকে একক মান বের করা

  3. MySQL-এ একাধিক টেবিল থেকে ডেটা নিয়ে একটি টেবিলে ইনসার্ট করা (CROSS JOIN)

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