Nice homework assignment, what have you coded?

HINT: Lookup ROW_NUMBER and/or DENSE_RANK analytical functions.