2014-05-10 33 views
10

是什么PERCENTILE_DISCPERCENTILE_CONT之间的差异,PERCENTILE_DISC VS PERCENTILE_CONT

我有一个表###从childstat

FIRSTNAME           GENDER BIRTHDATE  HEIGHT  WEIGHT 
-------------------------------------------------- ------ --------- ---------- ---------- 
lauren            f  10-JUN-00   54  876 
rosemary           f  08-MAY-00   35  123 
Albert            m  02-AUG-00   15  923 
buddy            m  02-OCT-00   15  150 
furkar            m  05-JAN-00   76  198 
simon            m  03-JAN-00   87  256 
tommy            m  11-DEC-00   78  167 

选择*,我想那些百分区分

select firstname,height, 
     percentile_cont(.50) within group (order by height) over() as pctcont_50_ht, 
     percentile_cont(.72) within group (order by height) over() as pctcont_72_ht, 
     percentile_disc(.50) within group (order by height) over() as pctdisc_50_ht, 
     percentile_disc(.72) within group (order by height) over() as pctdisc_72_ht 
from childstat order by height 


FIRSTNAME            HEIGHT PCTCONT_50_HT PCTCONT_72_HT PCTDISC_50_HT PCTDISC_72_HT 
-------------------------------------------------- ---------- ------------- ------------- ------------- ------------- 
buddy              15   54   76.64   54   78 
Albert              15   54   76.64   54   78 
rosemary             35   54   76.64   54   78 
lauren              54   54   76.64   54   78 
furkar              76   54   76.64   54   78 
tommy              78   54   76.64   54   78 
simon              87   54   76.64   54   78 

但是还是不明白这两个是怎么用的以及这两个功能是用什么的。

回答

14

PERCENTILE_DISC在您的设置/窗口中返回一个值,而PERCENTILE_CONT将插值;

在您的查询中,当您使用.72,PERCENTILE_CONT在76和78之间插值时,因为72%既不是其中之一; PERCENTILE_DISC选择76(最低的)

+7

我认为这个想法是'PERCENTILE_DISC()'应该用于**离散**范围,而'PERCENTILE_CONT()'应该用于**连续**范围。 –

相关问题