Using
ROW_NUMBER() OVER ( PARTITION BY course ORDER BY mark ASC) AS RowAsc,
ROW_NUMBER() OVER ( PARTITION BY course ORDER BY mark DESC) AS RowDesccourse | mark | rowasc | rowdesc
48642 | 59.00 | 11 | 83
48642 | 58.00 | 9 | 84
48642 | 58.00 | 8 | 85
48642 | 58.00 | 10 | 86
48642 | 56.00 | 7 | 87
48642 | 55.00 | 6 | 88
48642 | 54.00 | 5 | 89
48642 | 53.00 | 4 | 90
48642 | 53.00 | 3 | 91
48642 | 34.00 | 2 | 92
48642 | 25.00 | 1 | 93