Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Ranking functions return a ranking value for each row in a partition. Depending on the function that is used, some rows might receive the same value as other rows. Ranking functions are nondeterministic.
Transact-SQL provides the following ranking functions:
Examples
The following shows the four ranking functions used in the same query. See each ranking function for function specific examples.
USE AdventureWorks;
GO
SELECT c.FirstName, c.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 s
INNER JOIN Person.Contact c
ON s.SalesPersonID = c.ContactID
INNER JOIN Person.Address a
ON a.AddressID = c.ContactID
WHERE TerritoryID IS NOT NULL
AND SalesYTD <> 0;
Here is the result set.
| FirstName | LastName | Row Number | Rank | Dense Rank | Quartile | SalesYTD | PostalCode |
|---|---|---|---|---|---|---|---|
Maciej |
Dusza |
1 |
1 |
1 |
1 |
4557045 |
98027 |
Shelley |
Dyck |
2 |
1 |
1 |
1 |
5200475 |
98027 |
Linda |
Ecoffey |
3 |
1 |
1 |
1 |
3857164 |
98027 |
Carla |
Eldridge |
4 |
1 |
1 |
1 |
1764939 |
98027 |
Carol |
Elliott |
5 |
1 |
1 |
2 |
2811013 |
98027 |
Jauna |
Elson |
6 |
6 |
2 |
2 |
3018725 |
98055 |
Michael |
Emanuel |
7 |
6 |
2 |
2 |
3189356 |
98055 |
Terry |
Eminhizer |
8 |
6 |
2 |
3 |
3587378 |
98055 |
Gail |
Erickson |
9 |
6 |
2 |
3 |
5015682 |
98055 |
Mark |
Erickson |
10 |
6 |
2 |
3 |
3827950 |
98055 |
Martha |
Espinoza |
11 |
6 |
2 |
4 |
1931620 |
98055 |
Janeth |
Esteves |
12 |
6 |
2 |
4 |
2241204 |
98055 |
Twanna |
Evans |
13 |
6 |
2 |
4 |
1758386 |
98055 |
Change History
| Release | History |
|---|---|
17 July 2006 |
|
See Also
Reference
Functions (Transact-SQL)
OVER Clause (Transact-SQL)