MySQL-এ টেবিল থেকে দ্বিতীয় সর্বোচ্চ মান (2nd maximum) বের করতে ORDER BY column DESC LIMIT 1 OFFSET 1 ব্যবহার করা সবচেয়ে সহজ এবং দক্ষ পদ্ধতি।
উদাহরণ
১. টেবিল তৈরি করুন
mysql> CREATE TABLE DemoTable (Value INT);
২. ডেটা ইনসার্ট করুন
mysql> INSERT INTO DemoTable VALUES(1), (2), (4), (204), (5);
৩. সব রেকর্ড দেখুন
mysql> SELECT * FROM DemoTable;
আউটপুট: 1, 2, 4, 204, 5
৪. সেকেন্ড ম্যাক্সিমাম বের করুন
mysql> SELECT * FROM DemoTable ORDER BY Value DESC LIMIT 1 OFFSET 1;
৫. ফলাফল
+-------+
| Value |
+-------+
| 5 |
+-------+
ব্যাখ্যা:
ORDER BY Value DESC- সবচেয়ে বড় মান প্রথমে (204)।OFFSET 1- প্রথম রো (ম্যাক্সিমাম) স্কিপ করে।LIMIT 1- পরের একটিই নেয় (সেকেন্ড ম্যাক্সিমাম: 5)।
সতর্কতা: ডুপ্লিকেট ম্যাক্সিমাম মান থাকলে (যেমন 204, 204, 5) এটি ২য় 204 রিটার্ন করবে। ভিন্ন (distinct) সেকেন্ড ম্যাক্স চাইলে:
SELECT DISTINCT Value FROM DemoTable ORDER BY Value DESC LIMIT 1 OFFSET 1;
পুরানো পদ্ধতি (সাবকোয়েরি): SELECT MAX(Value) FROM DemoTable WHERE Value < (SELECT MAX(Value) FROM DemoTable) - এটি ডুপ্লিকেট ম্যাক্স হ্যান্ডেল করে কিন্তু স্লোয়ার।