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

MySQL-এ সাবকোয়ারি এবং ORDER BY ব্যবহার করে 탑 ৩ স্কোর এবং নাম অনুযায়ী সর্টিং


MySQL-এ সাবকোয়ারি ব্যবহার করে 탑 N রেকর্ড বের করে আবার সর্ট করা

MySQL-এ সাবকোয়ারি (derived table) ব্যবহার করে প্রথম 탑 N রেকর্ড বের করে, তারপর সেগুলোকে অন্য একটি কলাম অনুযায়ী সর্ট করা যায়। এটি "টপ N গ্রুপে আবার সর্টিং" করার জন্য কার্যকর।

উদাহরণ

টেবিল তৈরি:

CREATE TABLE DemoTable (Name VARCHAR(40), Score INT);
INSERT INTO DemoTable VALUES 
('Chris', 45), ('Bob', 98), ('David', 78), ('Mike', 96), ('Carol', 43);

টপ ৩ স্কোর বের করে নাম অনুযায়ী সর্ট

SELECT * FROM (
    SELECT Name, Score 
    FROM DemoTable 
    ORDER BY Score DESC, Name ASC 
    LIMIT 3
) AS tbl 
ORDER BY Name;

আউটপুট:

+-------+-------+
| Name  | Score |
+-------+-------+
| Bob   | 98    |
| David | 78    |
| Mike  | 96    |
+-------+-------+

ব্যাখ্যা

  1. ইনার কোয়ারি: ORDER BY Score DESC, Name ASC LIMIT 3 — 탑 ৩ স্কোর বের করে (টাই ব্রেকারের জন্য নাম)۔
  2. আউটার কোয়ারি: সাবকোয়ারির ফলাফলে ORDER BY Name — নাম অনুযায়ী সর্ট করে।

পারফরম্যান্স টিপ

  • Score কলামে ইন্ডেক্স থাকলে টপ N বের করা দ্রুত হয়।
  • MySQL 8.0+ এ WITH (CTE) ব্যবহার করলে আরও পঠনযোগ্য হয়।
  1. MySQL-এ তিনটি কলাম থেকে আলাদা মান বের করে একই কলামে প্রদর্শন করা

  2. MySQL에서 문자로 시작하는 코드(예: J23, C13) 문자+숫자 순으로 정렬하기

  3. MySQL-এ LIKE এবং SUBSTRING ব্যবহার করে মিলে যাওয়া স্ট্রিং বের করে নতুন কলাম তৈরি করা

  4. MySQL-এ SUBSTRING_INDEX() দিয়ে হাইফেন-বিভক্ত স্ট্রিং আলাদা কলামে বির্ভক্ত করা