SQL Server 的 PERCENTILE_CONT 是分析函数之一,它将根据表中列值的连续分布来计算百分位数。PERCENTILE_CONT 的基本语法是:
SELECT PERCENTILE_CONT(Numerical_Literal)
WITHIN GROUP ( ORDER BY_Clause)
OVER ( PARTITION_BY_Clause )
FROM [Source]
- Numerical_Literal:要计算的百分位数。此值应介于 0.0 和 1.0 之间。
- WITHIN Group (Order By_Clause):此子句将在组内以指定的顺序对数据进行排序。请参阅 SQL Order By Clause 以获得更好的理解。
- Over (Partition_By_Clause):它将 SELECT 语句选择的 SQL Server 记录划分为分区。
我们将使用下面显示的数据来进行此 PERCENTILE_CONT 演示。

SQL PERCENTILE_CONT 示例
在此示例中,我们将展示如何计算表中分区记录的百分位数。下面的查询将按销售额升序对数据进行排序,按职业对数据进行分区。然后,独立计算每个分区的百分位数。
SELECT [FirstName]
,[LastName]
,[Education]
,[Occupation]
,[YearlyIncome]
,[Sales]
,PERCENTILE_CONT(0) WITHIN GROUP (ORDER BY [Sales] ASC)
OVER (PARTITION BY [Occupation]) AS Percentile
FROM [Employee]

PERCENTILE_CONT 示例 2
在这里,我们在 PERCENTILE_CONT 函数中使用不同的数值。
SELECT [FirstName]
,[LastName]
,[Education]
,[Occupation]
,[YearlyIncome]
,[Sales]
,PERCENTILE_CONT(0.25) WITHIN GROUP (ORDER BY [Sales] ASC)
OVER (PARTITION BY [Occupation]) AS Percentile1
,PERCENTILE_CONT(0.75) WITHIN GROUP (ORDER BY [Sales] ASC)
OVER (PARTITION BY [Occupation]) AS Percentile2
,PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY [Sales] ASC)
OVER (PARTITION BY [Occupation]) AS Percentile3
,PERCENTILE_CONT(1.0) WITHIN GROUP (ORDER BY [Sales] ASC)
OVER (PARTITION BY [Occupation]) AS Percentile4
FROM [Employee]
