Oracle开发之分析函数总结

shilukun 2019-04-06

这一篇是对前面所有关于分析函数的文章的总结:

一、统计方面:

代码如下:

Sum() Over ([Partition by ] [Order by ])

   

Sum() Over ([Partition by ] [Order by ]  

     Rows Between  Preceding And  Following)

       

Sum() Over ([Partition by ] [Order by ]

     Rows Between  Preceding And Current Row)

   

Sum() Over ([Partition by ] [Order by ]

     Range Between Interval '' 'Day' Preceding

                    And Interval '' 'Day' Following )

具体请参考《Oracle开发之分析函数简介Over用法》和《Oracle开发之窗口函数》

二、排列方面:

代码如下:

Rank() Over ([Partition by ] [Order by ] [Nulls First/Last])

   

  Dense_rank() Over ([Patition by ] [Order by ] [Nulls First/Last])

   

Row_number() Over ([Partitionby ] [Order by ] [Nulls First/Last])

   

Ntile() Over ([Partition by ] [Order by ])

具体请参考《Oracle开发之分析函数(Rank, Dense_rank, row_number)》

三、最大值/最小值查找方面:

代码如下:

Min()/Max() Keep (Dense_rank First/Last [Partition by ] [Order by ])

具体请参考《Oracle开发之分析函数(Top/Bottom N、First/Last、NTile)》

四、首记录/末记录查找方面:

代码如下:

First_value / Last_value(Sum() Over ([Patition by ] [Order by ]

       Rows Between  Preceding And  Following  ))

具体请参考《Oracle开发之窗口函数》

五、相邻记录之间比较方面:

代码如下:

Lag(Sum(), 1) Over([Patition by ] [Order by ])

具体请参考《Oracle开发之报表函数》

相关推荐