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

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

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) - এটি ডুপ্লিকেট ম্যাক্স হ্যান্ডেল করে কিন্তু স্লোয়ার।

  1. MySQL-এ সাবকোয়েরি ব্যবহার করে একটি টেবিল থেকে অন্য টেবিলে ডেটা কপি করা

  2. সাবকোয়ারি ব্যবহার করে MySQL টেবিল থেকে দ্বিতীয় সর্বোচ্চ মার্কস বের করা

  3. MySQL에서 예약어 'group'을 테이블명으로 쓰려면 백틱으로 감싸기

  4. MySQL-এ INSERT INTO SELECT ব্যবহার করে অন্য টেবিল থেকে ডেটা কপি করা