sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man använder RANK() i SQL Server

Ändra:

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

till:

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

Ta en titt på det här exemplet:

SQL Fiddle DEMO

Du kanske också vill ta en titt på skillnaden mellan RANK (Transact-SQL) och DENSE_RANK (Transact-SQL):

RANK (Transact-SQL)

Om två eller flera rader är lika för en rang, får varje oavgjord rad samma rang. Till exempel, om de två bästa säljarna har samma SalesYTDvalue, rankas de båda etta. Säljaren med den näst högsta SalesYTD är rankad som nummer tre, eftersom det finns två rader som rankas högre. Därför returnerar RANK-funktionen inte alltid på varandra följande heltal.

DENSE_RANK (Transact-SQL)

Returnerar rangordningen för rader inom partitionen för en resultatuppsättning, utan några luckor i rangordningen. Rangen för en rad är ett plus antalet distinkta rangordningar som kommer före raden i fråga.



  1. Hur skickar jag sqlparameter till IN()?

  2. mysql -> infoga i tbl (välj från en annan tabell) och några standardvärden

  3. Bash-skript för att infoga värden i MySQL

  4. Hur man skapar en tabell med en främmande nyckel i SQL