首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

ORACLE分析函数(二)

2013-10-15 
ORACLE分析函数(2)下面,我们来解析一下分析函数的语法式(语法式图请参照:http://blog.csdn.net/yidian815/

ORACLE分析函数(2)

        下面,我们来解析一下分析函数的语法格式(语法格式图请参照:http://blog.csdn.net/yidian815/article/details/12709223)。

函数名称

        对it人士来时,再简单不过的东西了,不做描述。

函数参数:

        分析函数通常会具有0-3个参数。

分区子句:

        通过分区子句,可以对记录集进行分区,然后针对每个分区分别进行统计运算。在分析函数中,使用分区子句不必使用()将子句包围起来。在一个查询当中,我们可以使用多个分析函数,每个分析函数可以使用独立的分区规则。如果没有指定分区子句,则默认将整个查询结果作为一个分区。

        示例:

       没有指定分区子句:

SQL> select p.prod_subcategory_id,prod_list_price,sum(prod_list_price) over(order by prod_subcategory_id,prod_list_price range between 2 preceding and current row) fx from products p where p.prod_subcategory_id > 2053;select p.prod_subcategory_id,prod_list_price,sum(prod_list_price) over(order by prod_subcategory_id,prod_list_price range between 2 preceding and current row) fx from products p where p.prod_subcategory_id > 2053                                             *第 1 行出现错误:ORA-30486: 在窗口说明中无效的窗口合计组

对于range窗口范围,排序子句不可有多个字段。


窗口子句:
        通过前面的描述,相信大家对窗口子句的作用和语法已有所了解。

        另外,并不是所有分析函数都可以使用窗口子句,可以只有窗口子句的分析函数,在http://blog.csdn.net/yidian815/article/details/12709223可以查阅(具有*号)。

        UNBOUNDED PRECEDING:这个窗口从当前分区的每一行开始,并结束于正在处理的当前行
        CURRENT ROW:该窗口从当前行开始(并结束)
        Numeric Expression PRECEDING:对该窗口从当前行之前的数字表达式(Numeric Expression)的行开始,对RANGE来说,从从行序值小于数字表达式的当前行的值开始.
        Numeric Expression FOLLOWING:该窗口在当前行Numeric Expression行之后的行终止(或开始),且从行序值大于当前行Numeric Expression行的范围开始(或终止)
        range between 100 preceding and 100 following:当前行100前,当前后100后




热点排行