i've done this at my previous place and found assignment of a scoring algorithm the best method.
you'll need to build the score based on what you think is most important and once a total score is applied to each row you can assign a row number based on the order of the score largest to smallest
Hope this helps