MySQL-এ MAX() ও GROUP BY দিয়ে একটি কলামের ইউনিক ভ্যালু
যদি একটি কলামে (যেমন StudentId) ডুপ্লিকেট থাকে কিন্তু অন্য কলামে (StudentName) ভিন্ন মান থাকে, এবং আপনি প্রতিটি ইউনিক StudentId-এর জন্য একটি নির্দিষ্ট নাম (যেমন সর্বোচ্চ নাম) চান, তবে MAX() বা MIN() সাথে GROUP BY ব্যবহার করুন।
সিনট্যাক্স
SELECT yourColumnName1, MAX(yourColumnName2) AS anyAliasName FROM yourTableName GROUP BY yourColumnName1;
উদাহরণ সহ ব্যাখ্যা
টেবিল তৈরি:
mysql> CREATE TABLE distinctFromOneColumn (
-> StudentId INT,
-> StudentName VARCHAR(100)
-> );
ডেটা ইনসার্ট:
mysql> INSERT INTO distinctFromOneColumn VALUES(1001, 'John'); mysql> INSERT INTO distinctFromOneColumn VALUES(1002, 'Carol'); mysql> INSERT INTO distinctFromOneColumn VALUES(1001, 'Sam'); mysql> INSERT INTO distinctFromOneColumn VALUES(1001, 'David'); mysql> INSERT INTO distinctFromOneColumn VALUES(1002, 'Ramit'); mysql> INSERT INTO distinctFromOneColumn VALUES(1003, 'Bob');
বর্তমান ডেটা:
mysql> SELECT * FROM distinctFromOneColumn;
+-----------+-------------+ | StudentId | StudentName | +-----------+-------------+ | 1001 | John | | 1002 | Carol | | 1001 | Sam | | 1001 | David | | 1002 | Ramit | | 1003 | Bob | +-----------+-------------+
StudentId অনুযায়ী یونিক নাম (MAX):
mysql> SELECT StudentId, MAX(StudentName) AS StudentName
-> FROM distinctFromOneColumn
-> GROUP BY StudentId;
ফলাফল:
+-----------+-------------+ | StudentId | StudentName | +-----------+-------------+ | 1001 | Sam | | 1002 | Ramit | | 1003 | Bob | +-----------+-------------+
নোট: MAX() আলফাবেটিক্যালি সর্বোচ্চ মান দেয়। যদি প্রথম এন্ট্রি চান তবে সাবকোয়ারি বা উইন্ডো ফাংশন (MySQL 8.0+) ব্যবহার করুন।