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

MySQL-এ সমষ্টি ফাংশন এবং অন্যান্য সকল কলাম একসাথে নির্বাচন করা

সমস্যা

সাধারণত GROUP BY ব্যবহার করলে শুধু গ্রুপ করা কলাম এবং সমষ্টি ফাংশন (যেমন MAX, SUM) বের করা যায়। কিন্তু প্রতিটি সারির পাশে সমষ্টি মান (যেমন সর্বোচ্চ মার্কস) দেখাতে হলে সাবকোয়েরি বা উইন্ডো ফাংশন লাগে।

সারণি ও ডেটা

mysql> create table DemoTable1621 (
    -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> StudentName varchar(20),
    -> StudentMarks int
    -> );
mysql> insert into DemoTable1621(StudentName,StudentMarks) values('Chris',45),('Bob',78),('David',89),('Adam',87);

কোয়েরি (সাবকোয়েরি পদ্ধতি)

mysql> select tblData.*,
    -> (select max(StudentMarks) from DemoTable1621) as MaximumMarks
    -> from DemoTable1621 tblData;

ফলাফল

+-----------+-------------+--------------+--------------+
| StudentId | StudentName | StudentMarks | MaximumMarks |
+-----------+-------------+--------------+--------------+
| 1         | Chris       | 45           | 89           |
| 2         | Bob         | 78           | 89           |
| 3         | David       | 89           | 89           |
| 4         | Adam        | 87           | 89           |
+-----------+--------------+--------------+--------------+

বিকল্প: উইন্ডো ফাংশন (MySQL 8.0+)

SELECT *, MAX(StudentMarks) OVER () AS MaximumMarks FROM DemoTable1621;

উইন্ডো ফাংশন দক্ষতর এবং পঠনযোগ্য। পুরনো ভার্সনে সাবকোয়েরি ব্যবহার করতে হয়।

  1. MySQL-এ SELECT * কি ৪০টি কলাম লিস্ট করার চেয়ে দ্রুত?

  2. MySQL-এ SELECT NULL WHERE FALSE ব্যবহার করে কোনো রো ও কলাম না দেখানো

  3. MySQL에서 GROUP BY로 그룹핑하며 합계 구하기

  4. MySQL-এ INSERT ... ON DUPLICATE KEY UPDATE ব্যবহার করে এন্ট্রি থাকলে আপডেট করা