返回类型
bigint
备注
如果分区的⾏数不能被 integer_expression 整除,则将导致⼀个成员有两种⼤⼩不同的组。 按照
OVER ⼦句指定的顺序,较⼤的组排在较⼩的组前⾯。 例如,如果总⾏数是 53,组数是 5,则前
三个组每组包含 11 ⾏,其余两个组每组包含 10 ⾏。 另⼀⽅⾯,如果总⾏数可被组数整除,则⾏
数将在组之间平均分布。 例如,如果总⾏数为 50,有五个组,则每组将包含 10 ⾏。
NTILE 具有不确定性。 有关详细信息,请参阅 Deterministic and Nondeterministic Functions 。
⽰例
A. 将⾏分为组
下⾯的⽰例根据员⼯的年初⾄今销售额将⾏分到四个员⼯组中。 由于总⾏数不能被组数整除,因
此前两个组将包含四⾏,⽽其余各组包含三⾏。
SQL复制
下⾯是结果集:
复制
USE AdventureWorks2022;
GO
SELECT p.FirstName, p.LastName
,NTILE(4) OVER(ORDER BY SalesYTD DESC) AS Quartile
,CONVERT(NVARCHAR(20),s.SalesYTD,1) AS 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;
GO
FirstName LastName Quartile SalesYTD PostalCode
------------- --------------------- --------- -------------- ----------
评论