SQL分析函数

Posted C+++++++wyl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL分析函数相关的知识,希望对你有一定的参考价值。

分析函数:将集合进行分区(使用partition by),再计算这些分区的值,与分组函数最大的不同在于能够为每一个分区返回多行的值。

语法: function_name(<argument1>,<argument2>,...)

   OVER

    (<Partition-Clause><Order by - Cluase><Windowing Clause>)

其中,function_name : 用于指定分析函数名,Oracle提供了26个分析函数,比如 sum,count,avg,min, max, row_number等。

   <argument> : 分析函数的参数

     OVER :关键字,用于标识分析函数,否则查询分析器就不能区别,比如 sum 是分组函数还是一个分析函数。

     <Partition-Clause> : 分区子句,可选,如果不存在任何分区子句,则全部的结果集可看作一个单一的大区。

     <Order by-Clause> : 可选的排序子句,用来根据结果集进行排序。

     <Windowing Clause> : 用于定义分析函数将在其上操作的行的集合。

 

当使用了 ORDER BY 子句后,ORacle将添加一个默认的开窗子句,这意味着计算中所使用的行的集合是当前分区中当前行和前面的所有行

开窗子句 Windowing Clause必须定义在 Order By子句之后,用来定义一个变化或固定的数据窗口,分析函数将对这些数据进行操作。

eg : rows between unbounded preceding and unbounded following ,是Oracle提供的开窗子句,是指将计算第一条到最后一条的记录。

以上是关于SQL分析函数的主要内容,如果未能解决你的问题,请参考以下文章

sql2012新的系统函数&分析函数

SQL分析函数

1 小时 SQL 极速入门——分析函数

1 小时 SQL 极速入门——分析函数

SQL Server:具有不同长度的分析窗口函数

SQL Server 2008 中用户定义的排名/分析函数