這一篇是對前面所有關於分析函數的文章的總結:
一、統計方面:
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開發專題之:分析函數2》
三、最大值/最小值尋找方面:
Min()/Max() Keep (Dense_rank First/Last [Partition by ] [Order by ])
具體請參考《Oracle開發專題之:分析函數3》
四、首記錄/末記錄尋找方面:
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開發專題之:報表函數》