Rangfolgefunktionen (Transact-SQL)

 

THIS TOPIC APPLIES TO: yesSQL Server (starting with 2012)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Rangfolgefunktionen geben für jede Partitionszeile einen Rangfolgenwert zurück. Je nach verwendeter Funktion empfangen einige Zeilen möglicherweise dieselben Werte wie andere Zeilen. Rangfolgefunktionen sind nicht deterministisch.

Transact-SQL stellt folgende Rangfolgefunktionen bereit:

RANGNTILE
DENSE_RANKROW_NUMBER

Im Folgenden sind die in derselben Abfrage verwendeten vier Rangfolgefunktionen dargestellt. Funktionsspezifische Beispiele finden Sie in der jeweiligen rangfolgefunktion.

USE AdventureWorks2012;  
GO  
SELECT p.FirstName, p.LastName  
    ,ROW_NUMBER() OVER (ORDER BY a.PostalCode) AS "Row Number"  
    ,RANK() OVER (ORDER BY a.PostalCode) AS Rank  
    ,DENSE_RANK() OVER (ORDER BY a.PostalCode) AS "Dense Rank"  
    ,NTILE(4) OVER (ORDER BY a.PostalCode) AS Quartile  
    ,s.SalesYTD  
    ,a.PostalCode  
FROM Sales.SalesPerson AS s   
    INNER JOIN Person.Person AS p   
        ON s.BusinessEntityID = p.BusinessEntityID  
    INNER JOIN Person.Address AS a   
        ON a.AddressID = p.BusinessEntityID  
WHERE TerritoryID IS NOT NULL AND SalesYTD <> 0;  

Im Folgenden finden Sie das Resultset.

FirstNameLastNameRow NumberRankDense RankQuartileSalesYTDPostalCode
MichaelBlythe11114557045.045998027
LindaMitchell21115200475.231398027
JillianCarson31113857163.633298027
GarrettVargas41111764938.985998027
TsviReiter51122811012.715198027
ShuIto66223018725.485898055
JoséSaraiva76223189356.246598055
DavidCampbell86233587378.425798055
TeteMensa-Annan96231931620.183598055
LynnTsoflias106231758385.92698055
RachelValdez116242241204.042498055
JaePak126245015682.375298055
RanjitVarkey Chudukatil136243827950.23898055

Integrierte Funktionen (Transact-SQL)
Die OVER-Klausel (Transact-SQL)

Community-Beiträge

HINZUFÜGEN
Anzeigen: