資源描述:
《oracle函數(shù)介紹 第七篇 非著名函數(shù)之分析函數(shù)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、ORACLE函數(shù)介紹第七篇非著名函數(shù)之分析函數(shù)2007.8.271、CUME_DIST()OVER([partition_clause]order_by_clause)返回該行在分組序列中的相對(duì)位置,返回值介于0到1之間。注意喲,如果orderby的列是desc,則該分組內(nèi)最大的行返回列值1,如果orderby為asc,則該分組內(nèi)最小的行返回列值1。例如:SELECTcol,value,CUME_DIST()OVER(ORDERBYvalueDESC)FROMtmp1;2、NTILE(n)OVER([partition_clause]order_by_clause)ntile
2、是個(gè)很有意思的統(tǒng)計(jì)函數(shù)。它會(huì)按照你指定的組數(shù)(n)對(duì)記錄做分組例如:SELECTt.*,ntile(5)over(orderbyvaluedesc)FROMtmp1t;3、PERCENT_RANK()OVER([partition_clause]order_by_clause)與CUME_DIST類似,本函數(shù)返回分組序列中各行在分組序列的相對(duì)位置。其返回值也是介于0到1之間,不過其起始值始終為0而終結(jié)值始終為1。例如:SELECTcol,value,PERCENT_RANK()OVER(ORDERBYvalue)FROMtmp1;4、PERCENTILE_CONT(n)WIT
3、HINGROUP(ORDERBYcol[DESC
4、ASC])OVER(partition_clause)本函數(shù)功能與前面聚合函數(shù)處介紹的完全相同,只是一個(gè)是聚合函數(shù),一個(gè)是分析函數(shù)。例如:--聚合函數(shù)SELECTcol,max(value),min(value),sum(value),PERCENTILE_CONT(0.5)WITHINGROUP(ORDERBYvalue)a,PERCENTILE_CONT(0.8)WITHINGROUP(ORDERBYvalue)bFROMTMP1groupbycol;--分析函數(shù)SELECTcol,value,sum(value)over
5、(partitionbycol)"Sum",PERCENTILE_CONT(0.5)WITHINGROUP(ORDERBYvalue)OVER(PARTITIONBYcol)"CONTa",PERCENTILE_CONT(0.8)WITHINGROUP(ORDERBYvalue)OVER(PARTITIONBYcol)"CONTb"FROMTMP1;5、PERCENTILE_DISC(n)WITHINGROUP(ORDERBYcol[DESC
6、ASC])OVER(partition_clause)本函數(shù)功能與前面聚合函數(shù)處介紹的完全相同,只是一個(gè)是聚合函數(shù),一個(gè)是分析函數(shù)。例
7、如:--聚合函數(shù)SELECTcol,max(value),min(value),sum(value),PERCENTILE_DISC(0.5)WITHINGROUP(ORDERBYvalue)a,PERCENTILE_DISC(0.8)WITHINGROUP(ORDERBYvalue)bFROMTMP1groupbycol;--分析函數(shù)SELECTcol,value,sum(value)over(partitionbycol)"Sum",PERCENTILE_DISC(0.5)WITHINGROUP(ORDERBYvalue)OVER(PARTITIONBYcol)"CONT
8、a",PERCENTILE_DISC(0.8)WITHINGROUP(ORDERBYvalue)OVER(PARTITIONBYcol)"CONTb"FROMTMP1;1、RATIO_TO_REPORT(col)over([partition_clause])本函數(shù)計(jì)算本行col列值在該分組序列sum(col)中所占比率。如果col列為空,則返回空值。例如:SELECTcol,value,RATIO_TO_REPORT(value)OVER(PARTITIONBYcol)"RATIO_TO_REPORT"FROMTMP12、STDDEV([distinct
9、all]col)O
10、VER(analytic_clause)返回列的標(biāo)準(zhǔn)偏差。例如:--聚合函數(shù)SELECTcol,STDDEV(value)FROMTMP1GROUPBYcol;--分析函數(shù)SELECTcol,value,STDDEV(value)OVER(PARTITIONBYcolORDERBYvalue)"STDDEV"FROMTMP1;3、STDDEV_SAMP(col)OVER(analytic_clause)功能與上相同,與STDDEV不同地方在于如果該分組序列只有一行的話,則STDDEV_SAMP函數(shù)返回空