Ändra:
RANK() OVER (PARTITION BY ContenderNum ORDER BY totals ASC) AS xRank
till:
RANK() OVER (ORDER BY totals DESC) AS xRank
Ta en titt på det här exemplet:
SQL Fiddle DEMO
Du kanske också vill ta en titt på skillnaden mellan RANK (Transact-SQL) och DENSE_RANK (Transact-SQL):
RANK (Transact-SQL)
Om två eller flera rader är lika för en rang, får varje oavgjord rad samma rang. Till exempel, om de två bästa säljarna har samma SalesYTDvalue, rankas de båda etta. Säljaren med den näst högsta SalesYTD är rankad som nummer tre, eftersom det finns två rader som rankas högre. Därför returnerar RANK-funktionen inte alltid på varandra följande heltal.
DENSE_RANK (Transact-SQL)
Returnerar rangordningen för rader inom partitionen för en resultatuppsättning, utan några luckor i rangordningen. Rangen för en rad är ett plus antalet distinkta rangordningar som kommer före raden i fråga.