Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment utiliser RANK() dans SQL Server

Modifier :

RANK() OVER (PARTITION BY ContenderNum ORDER BY totals ASC) AS xRank

à :

RANK() OVER (ORDER BY totals DESC) AS xRank

Regardez cet exemple :

DÉMO SQL Fiddle

Vous pouvez également jeter un œil à la différence entre RANK (Transact-SQL) et DENSE_RANK (Transact-SQL) :

CLASSEMENT (Transact-SQL)

Si deux rangées ou plus sont à égalité pour un rang, chaque rangée liée reçoit le même rang. Par exemple, si les deux meilleurs vendeurs ont la même valeur SalesYTD, ils sont tous les deux classés au premier rang. Le vendeur avec le prochain plus haut SalesYTD est classé numéro trois, car il y a deux lignes qui sont classées plus haut. Par conséquent, la fonction RANK ne renvoie pas toujours des entiers consécutifs.

DENSE_RANK (Transact-SQL)

Renvoie le rang des lignes dans la partition d'un ensemble de résultats, sans aucune lacune dans le classement. Le rang d'une ligne est un plus le nombre de rangs distincts qui précèdent la ligne en question.