ORACLE分析函数

1.3 分析函数的使用

1.3.1 分析函数概览

 

我们浏览下所有的分析函数,其中带(*)的表示可以带window子句。其中黄色的表示常用分析函数。

--可以带window

    AVG  *

    CORR *

    COVAR_POP *

    COVAR_SAMP *

    COUNT *

    FIRST_VALUE *

    LAST_VALUE *

    MAX *

    MIN *

    REGR(Linear Regressions) Functions *

    STDDEV *

    STDDEV_POP *

    STDDEV_SAMP *

    SUM *

    VAR_POP *

    VAR_SAMP *

    VARIANCE *

--不可以带window

   CUME_DIST

    DENSE_RANK

    FIRST

    LAST

    LAG

    LEAD

    NTILE

    PERCENT_RANK

    PERCENTILE_COUNT

    PERCENTILE_DISC

    RANK

    ROW_NUMBER

    RATIO_TO_REPORT

常用分析函数使用说明

  分析函数可以分为四类:排名函数,聚合函数,行比较函数,统计函数。
  很多分析函数也可以当作聚合函数使用,这里我们只讨论当作分析函数的使用方法,聚合函数可以参考oracle sql指南,这里不另作说明。另外oracle还支持user-defined aggregate function,可以使用分析函数的语法,这样可以自定义扩展分析函数的功能,本章也会讨论如何写子句的分析函数。

1.3.2排名函数(Ranking)

  排名函数包括ROW_NUMBER, RANK ,DENSE_RANK, PERCENT_RANK, CUME_DISTNTILE(常用的是黄色标志的),排名函数的最大用途就是做TOP-N分析和BOTTOM-N分析,常用于分页查询,当然row_number伪列也类似

1.3.2.1 ROW_NUMBER, RANK ,DENSE_RANK
  其中row_number只能用于分析函数,rankdense_rank可以用于组函数和分析函数。排名函数都没有windows子句,3个分析函数必须使用order by,当然如果不要排序,也可以写order by null,order by 常量或多个常量,直接写NULL就行了,事实还会做一定sort动作的,只不过相当于增加几个伪列,都是一样的值

用于分析函数他们的语法是:

Row_number() Over ([Partition by 

 

ORACLE分析函数

上一篇:数据库连接池


下一篇:mysql递归查询