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

MySQL-এ LIMIT OFFSET দিয়ে কর্মচারির সর্বোচ্চ ও দ্বিতীয় সর্বোচ্চ বেতন বের করা

MySQL-এ টেবিল থেকে বেতন অনুযায়ী ডিসেন্ডিং সর্ট করে LIMIT 2 OFFSET 0 ব্যবহার করলে সর্বোচ্চ ও দ্বিতীয় সর্বোচ্চ বেতন পাওয়া যায়। এটি সাবকোয়েরির চেয়ে সহজ ও পঠনীয়।

সিনট্যাক্স

SELECT `id`, `name`, `salary` FROM `table` ORDER BY `salary` DESC LIMIT 2 OFFSET 0;

উদাহরণ

CREATE TABLE `EmployeeMaxAndSecondMaxSalary` (
    `EmployeeId` INT, `EmployeeName` VARCHAR(20), `EmployeeSalary` INT
);
INSERT INTO `EmployeeMaxAndSecondMaxSalary` VALUES
(1,'John',34566), (2,'Bob',56789), (3,'Carol',44560),
(4,'Sam',76456), (5,'Mike',65566), (6,'David',89990),
(7,'James',68789), (8,'Robert',76543);

কোয়েরি

SELECT `EmployeeId`, `EmployeeName`, `EmployeeSalary`
FROM `EmployeeMaxAndSecondMaxSalary`
ORDER BY `EmployeeSalary` DESC LIMIT 2 OFFSET 0;

ফলাফল:

+------------+--------------+----------------+
| EmployeeId | EmployeeName | EmployeeSalary |
+------------+--------------+----------------+
| 6          | David        | 89990          |
| 8          | Robert       | 76543          |
+------------+--------------+----------------+

নোট: যদি একাধিক কর্মচারীর একই বেতন থাকে (ties), তবে LIMIT 2 শুধু ২ রো রিটার্ন করবে। টাই ব্রেক করার জন্য সেকেন্ডারি সর্ট (ORDER BY salary DESC, id ASC) যোগ করুন।

  1. MySQL-এ UPDATE-এ ORDER BY ব্যবহার করা যায় না, SELECT-এ ORDER BY DESC ব্যবহার করুন

  2. MySQL-এ কারেন্ট ডেট ও টেবিলের ডেট রেকর্ডের পার্থক্য বের করা

  3. MySQL-এ ORDER BY DESC LIMIT 1 OFFSET 1 ব্যবহার করে সেকেন্ড ম্যাক্সিমাম মান বের করুন

  4. MySQL SUM() 집계 결과에 별칭(ALIAS) 붙여 컬럼명 지정하기