登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

飞哥的技术博客

世上无难事,只怕有心人!

 
 
 

日志

 
 
 
 

ORACLE函数介绍第七篇 非著名函数之分析函数收藏  

2009-05-25 16:57:05|  分类: Oracle |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

ORACLE函数介绍第七篇 非著名函数之分析函数收藏

 

1、CUME_DIST() OVER([partition_clause] order_by_clause) 返回该行在分组序列中的相对位置,返回值介于0到1之间。注意哟,如果order by的列是desc,则该分组内最大的行返回列值1,如果order by为asc,则该分组内最小的行返回列值1。

例如:SELECT col, value, CUME_DIST() OVER(ORDERBYvalueDESC) FROM tmp1;

2、NTILE(n) OVER([partition_clause] order_by_clause)  

例如:SELECT t.*,ntile(5) over(orderbyvaluedesc) FROM tmp1 t;

3、PERCENT_RANK() OVER([partition_clause] order_by_clause

例如:SELECT col, value, PERCENT_RANK() OVER(ORDERBYvalue) FROM tmp1;

4、PERCENTILE_CONT(n) WITHIN GROUP (ORDER BY col [DESC|ASC]) OVER(partition_clause)

SELECT col, max(value), min(value), sum(value),

       PERCENTILE_CONT(0.5) WITHIN GROUP(ORDERBYvalue) a,

       PERCENTILE_CONT(0.8) WITHIN GROUP(ORDERBYvalue) b

sum(value) over(partitionby col) "Sum",

       PERCENTILE_CONT(0.5) WITHIN GROUP( ORDERBYvalue) OVER(PARTITIONBY col) "CONTa",

       PERCENTILE_CONT(0.8) WITHIN GROUP( ORDERBYvalue) OVER(PARTITIONBY col) "CONTb"

5、PERCENTILE_DISC(n) WITHIN GROUP (ORDER BY col [DESC|ASC]) OVER(partition_clause)

SELECT col, max(value), min(value), sum(value),

       PERCENTILE_DISC(0.5) WITHIN GROUP(ORDERBYvalue) a,

       PERCENTILE_DISC(0.8) WITHIN GROUP(ORDERBYvalue) b

sum(value) over(partitionby col) "Sum",

       PERCENTILE_DISC(0.5) WITHIN GROUP( ORDERBYvalue) OVER(PARTITIONBY col) "CONTa",

       PERCENTILE_DISC(0.8) WITHIN GROUP( ORDERBYvalue) OVER(PARTITIONBY col) "CONTb"

6、RATIO_TO_REPORT(col) over ([partition_clause]) 本函数计算本行col列值在该分组序列sum(col)中所占比率。如果col列为空,则返回空值。

       RATIO_TO_REPORT(value) OVER(PARTITIONBY col) "RATIO_TO_REPORT"

7、STDDEV ([distinct|all] col) OVER (analytic_clause) 返回列的标准偏差。

SELECT col, STDDEV(value) FROM TMP1 GROUPBY col;

STDDEV(value) OVER(PARTITIONBY col ORDERBYvalue) "STDDEV"

8、STDDEV_SAMP(col) OVER (analytic_clause) 功能与上相同,与STDDEV不同地方在于如果该分组序列只有一行的话,则STDDEV_SAMP函数返回空值,而STDDEV则返回0。

SELECT col, STDDEV(value),STDDEV_SAMP(value) FROM TMP1 GROUPBY col;

STDDEV(value) OVER(PARTITIONBY col ORDERBYvalue) "STDDEV",

       STDDEV_SAMP(value) OVER(PARTITIONBY col ORDERBYvalue) "STDDEV_SAMP"

9、STDDEV_POP(col) OVER (analytic_clause) 返回该分组序列总体标准偏差

SELECT col, STDDEV_POP(value) FROM TMP1 GROUPBY col;

       STDDEV_POP(value) OVER(PARTITIONBY col ORDERBYvalue) "STDDEV_POP"

10、VAR_POP(col) OVER (analytic_clause) 返回分组序列的总体方差,VAR_POP进行如下计算:(SUM(ex

ORACLE函数介绍第七篇 非著名函数之分析函数收藏

 

1、CUME_DIST() OVER([partition_clause] order_by_clause) 返回该行在分组序列中的相对位置,返回值介于0到1之间。注意哟,如果order by的列是desc,则该分组内最大的行返回列值1,如果order by为asc,则该分组内最小的行返回列值1。

例如:SELECT col, value, CUME_DIST() OVER(ORDERBYvalueDESC) FROM tmp1;

2、NTILE(n) OVER([partition_clause] order_by_clause)  

例如:SELECT t.*,ntile(5) over(orderbyvaluedesc) FROM tmp1 t;

3、PERCENT_RANK() OVER([partition_clause] order_by_clause

例如:SELECT col, value, PERCENT_RANK() OVER(ORDERBYvalue) FROM tmp1;

4、PERCENTILE_CONT(n) WITHIN GROUP (ORDER BY col [DESC|ASC]) OVER(partition_clause)

SELECT col, max(value), min(value), sum(value),

       PERCENTILE_CONT(0.5) WITHIN GROUP(ORDERBYvalue) a,

       PERCENTILE_CONT(0.8) WITHIN GROUP(ORDERBYvalue) b

sum(value) over(partitionby col) "Sum",

       PERCENTILE_CONT(0.5) WITHIN GROUP( ORDERBYvalue) OVER(PARTITIONBY col) "CONTa",

       PERCENTILE_CONT(0.8) WITHIN GROUP( ORDERBYvalue) OVER(PARTITIONBY col) "CONTb"

5、PERCENTILE_DISC(n) WITHIN GROUP (ORDER BY col [DESC|ASC]) OVER(partition_clause)

SELECT col, max(value), min(value), sum(value),

       PERCENTILE_DISC(0.5) WITHIN GROUP(ORDERBYvalue) a,

       PERCENTILE_DISC(0.8) WITHIN GROUP(ORDERBYvalue) b

sum(value) over(partitionby col) "Sum",

       PERCENTILE_DISC(0.5) WITHIN GROUP( ORDERBYvalue) OVER(PARTITIONBY col) "CONTa",

       PERCENTILE_DISC(0.8) WITHIN GROUP( ORDERBYvalue) OVER(PARTITIONBY col) "CONTb"

6、RATIO_TO_REPORT(col) over ([partition_clause]) 本函数计算本行col列值在该分组序列sum(col)中所占比率。如果col列为空,则返回空值。

       RATIO_TO_REPORT(value) OVER(PARTITIONBY col) "RATIO_TO_REPORT"

7、STDDEV ([distinct|all] col) OVER (analytic_clause) 返回列的标准偏差。

SELECT col, STDDEV(value) FROM TMP1 GROUPBY col;

STDDEV(value) OVER(PARTITIONBY col ORDERBYvalue) "STDDEV"

8、STDDEV_SAMP(col) OVER (analytic_clause) 功能与上相同,与STDDEV不同地方在于如果该分组序列只有一行的话,则STDDEV_SAMP函数返回空值,而STDDEV则返回0。

SELECT col, STDDEV(value),STDDEV_SAMP(value) FROM TMP1 GROUPBY col;

STDDEV(value) OVER(PARTITIONBY col ORDERBYvalue) "STDDEV",

       STDDEV_SAMP(value) OVER(PARTITIONBY col ORDERBYvalue) "STDDEV_SAMP"

9、STDDEV_POP(col) OVER (analytic_clause) 返回该分组序列总体标准偏差

SELECT col, STDDEV_POP(value) FROM TMP1 GROUPBY col;

       STDDEV_POP(value) OVER(PARTITIONBY col ORDERBYvalue) "STDDEV_POP"

10、VAR_POP(col) OVER (analytic_clause) 返回分组序列的总体方差,VAR_POP进行如下计算:(SUM(expr2) - SUM(expr)2 / COUNT(expr)) / COUNT(expr)

SELECT col, VAR_POP(value) FROM TMP1 GROUPBY col;

       VAR_POP(value) OVER(PARTITIONBY col ORDERBYvalue) "VAR_POP"

11、VAR_SAMP(col) OVER (analytic_clause) 与上类似,该函数返回分组序列的样本方差,,其计算公式为:(SUM(expr2) - SUM(expr)2 / COUNT(expr)) / (COUNT(expr) - 1)

SELECT col, VAR_SAMP(value) FROM TMP1 GROUPBY col;

       VAR_SAMP(value) OVER(PARTITIONBY col ORDERBYvalue) "VAR_SAMP"

12、VARIANCE(col) OVER (analytic_clause

SELECT col, VAR_SAMP(value),VARIANCE(value) FROM TMP1 GROUPBY col;

       VAR_SAMP(value) OVER(PARTITIONBY col ORDERBYvalue) "VAR_SAMP",

VARIANCE(value) OVER(PARTITIONBY col ORDERBYvalue) "VARIANCE"

pr2) - SUM(expr)2 / COUNT(expr)) / COUNT(expr)

SELECT col, VAR_POP(value) FROM TMP1 GROUPBY col;

       VAR_POP(value) OVER(PARTITIONBY col ORDERBYvalue) "VAR_POP"

11、VAR_SAMP(col) OVER (analytic_clause) 与上类似,该函数返回分组序列的样本方差,,其计算公式为:(SUM(expr2) - SUM(expr)2 / COUNT(expr)) / (COUNT(expr) - 1)

SELECT col, VAR_SAMP(value) FROM TMP1 GROUPBY col;

       VAR_SAMP(value) OVER(PARTITIONBY col ORDERBYvalue) "VAR_SAMP"

12、VARIANCE(col) OVER (analytic_clause

SELECT col, VAR_SAMP(value),VARIANCE(value) FROM TMP1 GROUPBY col;

       VAR_SAMP(value) OVER(PARTITIONBY col ORDERBYvalue) "VAR_SAMP",

VARIANCE(value) OVER(PARTITIONBY col ORDERBYvalue) "VARIANCE"

  评论这张
 
阅读(172)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018