Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So verwenden Sie RANK() in SQL Server

Änderung:

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

zu:

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

Sehen Sie sich dieses Beispiel an:

SQL-Geige DEMO

Vielleicht möchten Sie sich auch den Unterschied zwischen RANK (Transact-SQL) und DENSE_RANK (Transact-SQL) ansehen:

RANG (Transact-SQL)

Wenn zwei oder mehr Reihen für einen Rang gleich sind, erhält jede Reihe mit Gleichstand den gleichen Rang. Wenn beispielsweise die beiden Top-Verkäufer denselben SalesYTD-Wert haben, werden sie beide auf Platz eins eingestuft. Der Verkäufer mit dem nächsthöchsten UmsatzYTD wird auf Platz drei eingestuft, da es zwei Zeilen gibt, die höher eingestuft werden. Daher gibt die RANK-Funktion nicht immer aufeinanderfolgende Ganzzahlen zurück.

DENSE_RANK (Transact-SQL)

Gibt den Rang von Zeilen innerhalb der Partition einer Ergebnismenge ohne Lücken in der Rangfolge zurück. Der Rang einer Zeile ist eins plus die Anzahl der unterschiedlichen Ränge, die vor der betreffenden Zeile stehen.