sql >> Database >  >> RDS >> Sqlserver

Hoe RANK() te gebruiken in SQL Server

Wijzigen:

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

naar:

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

Bekijk dit voorbeeld:

SQL Fiddle DEMO

Misschien wilt u ook eens kijken naar het verschil tussen RANK (Transact-SQL) en DENSE_RANK (Transact-SQL):

RANG (Transact-SQL)

Als twee of meer rijen gelijk zijn voor een rang, krijgt elke gelijke rij dezelfde rang. Als de twee beste verkopers bijvoorbeeld dezelfde SalesYTD-waarde hebben, staan ​​ze allebei op de eerste plaats. De verkoper met de volgende hoogste SalesYTD staat op de derde plaats, omdat er twee rijen zijn die hoger zijn gerangschikt. Daarom retourneert de RANK-functie niet altijd opeenvolgende gehele getallen.

DENSE_RANK (Transact-SQL)

Retourneert de rangorde van rijen binnen de partitie van een resultatenset, zonder hiaten in de rangschikking. De rangorde van een rij is één plus het aantal verschillende rangen dat voor de betreffende rij komt.



  1. Knip alle tabellen in een database in SQL Server af - SQL Server / TSQL-zelfstudie, deel 55

  2. Hoe kan ik een database onder git (versiebeheer) plaatsen?

  3. Gegevens worden ingevuld vanaf de datum van een bepaalde tabel in plaats van alle tabellen in sqlite

  4. Records van uur tot uur of van dag tot dag groeperen en hiaten opvullen met nul of nul