我正在使用Microsoft SQL Server 2014。
我有一个列名为col1, col2, Values
的表。我需要为每对唯一Values
标识符找到col1, col2
的第99个百分位数。即Values
中99%的值较小的值。
我尝试了以下内容:
SELECT [col1], [col2],
PERCENTILE_CONT(0.99) WITHIN GROUP (ORDER BY [Values] ASC)
OVER (PARTITION BY [col1], [col2]) "Percentile_Cont"
FROM MyTable
然而,它会产生重复的[col1], [col2]
对。
建议的正确实施是为了获得具有相应百分位数的唯一[col1], [col2]
对吗?
编辑: 样本数据:
col1 col2 values
A a2 1
A a2 2
A a2 1
A a2 12
B a1 11
B a1 11
B a1 12
B a1 15
预期答案:
A a2 11.7
B a1 14.91
答案 0 :(得分:1)
使用DISTINCT
SELECT DISTINCT [col1], [col2],
PERCENTILE_CONT(0.99)
WITHIN GROUP (ORDER BY [Values] ASC)
OVER (PARTITION BY [col1], [col2]) "Percentile_Cont"
FROM MyTable