Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como usar RANK() no SQL Server


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.