Funciones de categoría (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Punto de conexión de análisis SQL en Microsoft FabricAlmacenamiento en Microsoft Fabric

Las funciones de categoría devuelven un valor de categoría para cada fila de una partición. Según la función que se utilice, algunas filas pueden recibir el mismo valor que otras. Las funciones de categoría son no deterministas.

Transact-SQL proporciona las siguientes funciones de categoría:

Ejemplos

En el ejemplo siguiente se muestran las cuatro funciones de categoría usadas en la misma consulta. Consulte cada función de categoría para ver ejemplos específicos de las funciones.

USE AdventureWorks2022;  
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;  

El conjunto de resultados es el siguiente:

Nombre Apellidos Row Number Rank Dense Rank Quartile SalesYTD PostalCode
Michael Blythe 1 1 1 1 4 557 045,0459 98027
Linda Mitchell 2 1 1 1 5 200 475,2313 98027
Jillian Carson 3 1 1 1 3 857 163,6332 98027
Garrett Vargas 4 1 1 1 1 764 938,9859 98027
Tsvi Reiter 5 1 1 2 2 811 012,7151 98027
Shu Ito 6 6 2 2 3 018 725,4858 98055
José Saraiva 7 6 2 2 3 189 356,2465 98055
David Campbell 8 6 2 3 3 587 378,4257 98055
Tete Mensa Annan 9 6 2 3 1 931 620,1835 98055
Lynn Tsoflias 10 6 2 3 1 758 385,926 98055
Rachel Valdez 11 6 2 4 2 241 204,0424 98055
Jae Pak 12 6 2 4 5 015 682,3752 98055
Ranjit Varkey Chudukatil 13 6 2 4 3 827 950,238 98055

Consulte también

Funciones integradas (Transact-SQL)
Cláusula OVER (Transact-SQL)