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) যোগ করুন।