ROW_NUMBER() function in SQL Server is very useful special in case when you want to process N records from a specific group. This function has been around since SQL Server 2005 and at its core, provides a way to provide sequential numbering for rows returned by a query.
As well as sequential numbering, ROW_NUMBER() provides a way to partition the results returned so this suited me just fine