锋利的SQL2014:基于窗口的分布计算(二)

2015-11-21 01:30:43 · 作者: · 浏览: 8

2

Michael

72

86

86

1

3

Ann

94

86

80

0.25

3

Ken

92

86

80

0.5

3

Ina

80

86

80

0.75

3

Laura

75

86

80

1

表中P_Cont列计算的是班级中50%位置的值,班级1共有4行,因此94是Achievement列中第二行和第三行的平均值:(99+89)/2。也就是说,对于偶数行,PERCENTILE_CONT函数计算的是中间两个数值间的平均值。

而PERCENTILE_DISC函数不会这样做,它始终返回的是已有值。注意表中的C_Dist列,该列计算的是值得累积分布。当为PERCENTILE_DISC指定一个比例值时,它会查找大于或等于该比例的累积分布值所对应的值。例如,在该示例中我们为函数指定的比例是0.6,在班级1中第一个大于或等于该值的累积分布是0.75,因此该函数返回了89。