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

MySQL-এ প্রথম এবং শেষ সারি বাদ দিয়ে বাকি সারি বের করা

গ্রুপ অনুযায়ী প্রথম এবং শেষ সারি বাদ দিয়ে মধ্যবর্তী সারি বের করতে সাবকোয়েরি দিয়ে MIN() এবং MAX() ব্যবহার করা হয়।

টেবিল ও ডেটা তৈরি

mysql> CREATE TABLE DemoTable1917 (
    StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    StudentCode INT,
    StudentMarks INT
);

mysql> INSERT INTO DemoTable1917 (StudentCode, StudentMarks) VALUES
    (78, 95), (78, 96), (78, 97), (78, 98), (78, 99);

ডেটা যাচাই

mysql> SELECT * FROM DemoTable1917;
+-----------+-------------+--------------+
| StudentId | StudentCode | StudentMarks |
+-----------+-------------+--------------+
|         1 |          78 |           95 |
|         2 |          78 |           96 |
|         3 |          78 |           97 |
|         4 |          78 |           98 |
|         5 |          78 |           99 |
+-----------+-------------+--------------+

কোয়েরি: প্রথম ও শেষ StudentId বাদ দেওয়া

mysql> SELECT * FROM DemoTable1917
    WHERE StudentId NOT IN (
        (SELECT MIN(StudentId) FROM DemoTable1917 WHERE StudentCode = 78),
        (SELECT MAX(StudentId) FROM DemoTable1917 WHERE StudentCode = 78)
    )
    AND StudentCode = 78;

আউটপুট:

+-----------+-------------+--------------+
| StudentId | StudentCode | StudentMarks |
+-----------+-------------+--------------+
|         2 |          78 |           96 |
|         3 |          78 |           97 |
|         4 |          78 |           98 |
+-----------+-------------+--------------+

আধুনিক বিকল্প (MySQL 8.0+): ROW_NUMBER()

WITH ranked AS (
    SELECT *, ROW_NUMBER() OVER (PARTITION BY StudentCode ORDER BY StudentId) AS rn,
           COUNT(*) OVER (PARTITION BY StudentCode) AS cnt
    FROM DemoTable1917
    WHERE StudentCode = 78
)
SELECT * FROM ranked WHERE rn NOT IN (1, cnt);

তুলনা

পদ্ধতিMySQL সংস্করণপারফরম্যান্স
MIN/MAX সাবকোয়েরিসবমাঝারি
ROW_NUMBER() (Window Function)8.0+উত্তম
  1. MySQL টেবিল থেকে সব সারি ডিলিট করতে কীভাবে পারি?

  2. MySQL-এ শেষ ১০টি সারি কীভাবে বের করবেন?

  3. MySQL-এ নির্দিষ্ট শর্ত অনুযায়ী সিঙ্গেল রো বের করা

  4. ArrayList-এ প্রথম এবং শেষ এলিমেন্ট বের করার জাভা প্রোগ্রাম