一、統計方面:
複製** **如下:
sum() over ([partition by ] [order by ])
sum() over ([partition by ] [order by ]
&www.cppcns.comnbsp; rows between preced程式設計客棧ing 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開發之視窗函式》
二、排www.cppcns.com列方面:
複製** **如下:
rank() over ([partition by ] [order by ] [nulls first/last])
dense_rank() over ([patition by ] [order by ] [nulls first/last])
row_number() over ([pawww.cppcns.comrtitionby ] [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 ])
具體請參考《orwww.cppcns.comacle開發之分析函式(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開發之報表函式》
本文標題: oracle開發之分析函式總結
本文位址:
oracle之分析函式 partition by
建立臨時表 temp with tempas select 裝置1 name,to date 2020 01 01 yyyy mm dd time,26 value from dual union allselect 裝置1 name,to date 2020 01 02 yyyy mm dd ti...
Oracle使用技巧之分析函式篇
oracle是我們專案中經常使用的資料庫軟體,它的強大的功能令我們嘆服,在此蒐集了一些使用技巧整理如下,希望籍此給大家一些幫助。以下 在sql plus oracle10g 環境除錯通過。1 number p,s 的意義 我們經常使用到number型別的資料,但其中的精度問題常常令我們困惑,甚至會出...
Oracle 刪除重複資料之分析函式
有個表內有1677萬條資料,而不同的有571萬。當並不是每個欄位都相同的內容,比如有100個同名同姓的人,只是薪水不一樣了,其他字段內容一樣。就不能用rowid方法據據oracle帶的rowid屬性,進行判斷,是否存在重複,語句如下 查資料 select from table 1 awhere ro...