Mudar:
RANK() OVER (PARTITION BY ContenderNum ORDER BY totals ASC) AS xRank
para:
RANK() OVER (ORDER BY totals DESC) AS xRank
Dê uma olhada neste exemplo:
DEMO do SQL Fiddle
Você também pode querer dar uma olhada na diferença entre RANK (Transact-SQL) e DENSE_RANK (Transact-SQL):
CLASSIFICAÇÃO (Transact-SQL)
Se duas ou mais linhas empatarem em uma classificação, cada linha empatada recebe a mesma classificação. Por exemplo, se os dois principais vendedores tiverem o mesmo valor de VendasYTD, ambos serão classificados como um. O vendedor com o próximo maior SalesYTD é classificado como número três, porque há duas linhas com classificação mais alta. Portanto, a função RANK nem sempre retorna inteiros consecutivos.
DENSE_RANK (Transact-SQL)
Retorna a classificação das linhas dentro da partição de um conjunto de resultados, sem lacunas na classificação. O posto de uma linha é um mais o número de postos distintos que vêm antes da linha em questão.