Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come utilizzare RANK() in SQL Server

Modifica:

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

a:

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

Dai un'occhiata a questo esempio:

DEMO SQL Fiddle

Potresti anche voler dare un'occhiata alla differenza tra RANK (Transact-SQL) e DENSE_RANK (Transact-SQL):

GRADO (Transazione-SQL)

Se due o più righe si equivalgono per un rango, ciascuna riga in parità riceve lo stesso rango. Ad esempio, se i due migliori venditori hanno lo stesso valore SalesYTD, sono entrambi classificati uno. Il venditore con il successivo anno più alto SalesYTD è classificato al numero tre, perché ci sono due righe che sono classificate più in alto. Pertanto, la funzione RANK non restituisce sempre interi consecutivi.

DENSE_RANK (Transazione-SQL)

Restituisce il rango delle righe all'interno della partizione di un set di risultati, senza spazi vuoti nella classifica. Il rango di una riga è uno più il numero di ranghi distinti che precedono la riga in questione.