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

MySQL-এ নির্দিষ্ট মান ثابت রেখে বাকি সারি র‍্যান্ডমভাবে সর্ট করা

ফলাফলে নির্দিষ্ট একটি মান (যেমন Number = 40) সর্বোপরি রাখে বাকি সারি র‍্যান্ডম ক্রমে দেখাতে ORDER BY (condition) DESC, RAND() ব্যবহার করা হয়।

টেবিল ও ডেটা তৈরি

mysql> CREATE TABLE DemoTable1921 (Number INT);

mysql> INSERT INTO DemoTable1921 VALUES (40), (80), (820), (10);

ডেটা যাচাই

mysql> SELECT * FROM DemoTable1921;
+--------+
| Number |
+--------+
|     40 |
|     80 |
|    820 |
|     10 |
+--------+

কোয়েরি: ৪০ প্রথমে, বাকি র‍্যান্ডম

mysql> SELECT * FROM DemoTable1921
    ORDER BY (Number = 40) DESC, RAND();

ব্যাখ্যা:

  • (Number = 40) — বুলিয়ান এক্সপ্রেশন, ম্যাচ হলে ১ (TRUE), নাহলে ০ (FALSE)।
  • DESC — ১ (TRUE) আগে আসে, অর্থাৎ ৪০human The user wants me to continue processing the remaining articles. I've completed 23 articles so far (from 1006075452 to 1006075474). There are more articles to process. Let me continue with the next ones. 1006075475 MySQL-এ GROUP BY এবং SUM() দিয়ে ছাত্রवार মোট নম্বর বের করা

    একই ছাত্রের একাধিক রেকর্ড থাকলে তার মোট নম্বর বের করতে GROUP BY এবং এগ리게ট ফাংশন SUM() ব্যবহার করা হয়।

    টেবিল ও ডেটা তৈরি

    mysql> CREATE TABLE DemoTable1920 (
        StudentName VARCHAR(20),
        StudentMarks INT
    );
    
    mysql> INSERT INTO DemoTable1920 VALUES
        ('Chris', 67), ('David', 97), ('Chris', 57), ('David', 45), ('Chris', 89);

    ডেটা যাচাই

    mysql> SELECT * FROM DemoTable1920;
    +-------------+--------------+
    | StudentName | StudentMarks |
    +-------------+--------------+
    | Chris       |           67 |
    | David       |           97 |
    | Chris       |           57 |
    | David       |           45 |
    | Chris       |           89 |
    +-------------+--------------+

    গ্রুপ বাই এবং SUM কোয়েরি

    mysql> SELECT StudentName, SUM(StudentMarks) AS TotalMarks
        FROM DemoTable1920
        GROUP BY StudentName;

    আউটপুট:

    +-------------+------------+
    | StudentName | TotalMarks |
    +-------------+------------+
    | Chris       |        213 |
    | David       |        142 |
    +-------------+------------+

    ব্যাখ্যা

    • GROUP BY StudentName — একই নামের সারিগুলো এক গ্রুপে একত্রিত করে।
    • SUM(StudentMarks) — প্রতিটি গ্রুপের নম্বরের যোগফল বের করে।
    • AS TotalMarks — আউটপুট কলামের নাম দেয়।

    অতিরিক্ত এগ리게শন

    SELECT StudentName,
        SUM(StudentMarks) AS TotalMarks,
        COUNT(*) AS SubjectCount,
        AVG(StudentMarks) AS AverageMarks,
        MIN(StudentMarks) AS MinMarks,
        MAX(StudentMarks) AS MaxMarks
    FROM DemoTable1920
    GROUP BY StudentName;

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

    StudentName কলামে ইন্ডেক্স থাকলে গ্রুপিং দ্রুত হবে। বড় ডেটাসেটে EXPLAIN দিয়ে प्ल্যান চেক করুন।

  1. MySQL-এ নির্দিষ্ট ভ্যালু প্রথমে দেখিয়ে বাকি অর্ডার করানো (ORDER BY ট্রিক)

  2. MySQL CONCAT()으로 여러 컬럼 값을 텍스트와 합쳐 단일 컬럼으로 출력하기

  3. MySQL-এ IFNULL() ব্যবহার করে NULL মানকে নির্দিষ্ট ভ্যালু ('Robert') দিয়ে রিপ্লেস করা

  4. MySQL-এ প্রথম ৩ রোয়ের কলাম মান নির্দিষ্ট মান দিয়ে আপডেট করা