Answer CTE ...
Create Table NameNoteTable (Name Varchar(10), Note Int); Insert NameNoteTable Select 'Andrew', 19 Union All Select 'Andrew', 18 Union All Select 'Andrew', 17 Union All Select 'Thomas', 18 Union All Select 'Thomas', 14 Union All Select 'Thomas', 12 Union All Select 'Frank', 16 Union All Select 'Frank', 15; With cte As ( Select Row_Number() Over (Order By Max(Note) Desc) As tID, Name, Max(Note) As MaxNote From NameNoteTable Group By Name ) Select nnt.Name, nnt.Note From NameNoteTable nnt Join cte c On nnt.Name = c.Name Order By tID, Note Desc;
source share