একই ভ্যালু থাকলে নির্দিষ্ট রো ফেচ করতে GROUP BY ব্যবহার করতে হয়। প্রথমে একটি টেবিল তৈরি করি:
mysql> create table DemoTable659(Id int, Name varchar(100), Score int); Query OK, 0 rows affected (0.52 sec)
কিছু রেকর্ড ইনসার্ট করি:
mysql> insert into DemoTable659 values(11,'John',45); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable659 values(15,'John',59); Query OK, 1 row affected (0.20 sec) mysql> insert into DemoTable659 values(15,'Sam',61); Query OK, 1 row affected (0.14 sec)
সব রেকর্ড দেখি:
mysql> select *from DemoTable659;
আউটপুট:
+------+------+-------+ | Id | Name | Score | +------+------+-------+ | 11 | John | 45 | | 15 | John | 59 | | 15 | Sam | 61 | +------+------+-------+ 3 rows in set (0.00 sec)
একই ভ্যালু থাকলে নির্দিষ্ট রো ফেচ করার ক্যোয়ারি (সাবকোয়েরিতে ORDER BY DESC ব্যবহার করা হয়েছে):
mysql> select *from (select *from DemoTable659 order by Id desc) tbl group by Name;
আউটপুট:
+------+------+-------+ | Id | Name | Score | +------+------+-------+ | 11 | John | 45 | | 15 | Sam | 61 | +------+------+-------+ 2 rows in set (0.04 sec)
নোট: এই পদ্ধতিতে MySQL-এ ONLY_FULL_GROUP_BY SQL মোড সক্রিয় থাকলে এরর দিতে পারে। আধুনিক MySQL-এ ROW_NUMBER() উইন্ডো ফাংশন ব্যবহার করা ভালো।