MySQL 8.0+ এ উইন্ডো ফাংশন ROW_NUMBER() ব্যবহার করে SELECT কোয়েরির ফলাফলে রো নাম্বার (র্যাঙ্ক) যোগ করা যায়।
টেবিল ও ডেটা তৈরি
mysql> create table DemoTable1342 ( Score int ); Query OK, 0 rows affected (0.68 sec) mysql> insert into DemoTable1342 values(80),(98),(78),(89); Query OK, 4 rows affected
সব রেকর্ড দেখানো
mysql> select * from DemoTable1342; +-------+ | Score | +-------+ | 80 | | 98 | | 78 | | 89 | +-------+
ROW_NUMBER() ব্যবহার করে র্যাঙ্ক কোলাম যোগ (ডিসেন্ডিং অর্ডারে)
mysql> select Score, row_number() over() as `Rank` from DemoTable1342 order by Score DESC; +-------+------+ | Score | Rank | +-------+------+ | 98 | 1 | | 89 | 2 | | 80 | 3 | | 78 | 4 | +-------+
ব্যাখ্যা: row_number() over() উইন্ডো ফাংশন প্রতিটি রোয়ের জন্য সিকোয়েনশিয়াল নম্বর আসাইন করে। ORDER BY Score DESC দিয়ে সর্ট করার পর র্যাঙ্ক বরাবর হয়। পার্টিশন করতে PARTITION BY ব্যবহার করা যায়।