変更:
RANK() OVER (PARTITION BY ContenderNum ORDER BY totals ASC) AS xRank
宛先:
RANK() OVER (ORDER BY totals DESC) AS xRank
この例を見てください:
SQLフィドルデモ
また、RANK(Transact-SQL)とDENSE_RANK(Transact-SQL)の違いも確認することをお勧めします。
ランク (Transact-SQL)
2つ以上の行がランクで同点の場合、同点の各行は同じランクを受け取ります。たとえば、上位2人の営業担当者が同じSalesYTDvalueを持っている場合、両方とも1つにランク付けされます。上位にランク付けされた行が2つあるため、次に高いSalesYTDの営業担当者が3位にランク付けされます。したがって、RANK関数は常に連続した整数を返すとは限りません。
DENSE_RANK (Transact-SQL)
結果セットのパーティション内の行のランクを、ランクにギャップなしで返します。行のランクは、1に、問題の行の前にある個別のランクの数を加えたものです。