資料庫 開窗函式

2021-10-05 15:35:51 字數 1133 閱讀 7055

1、排序

--rank為重複不連續,dense_rank為重複連續,row_number不重複,按順序下來

row_number (

)over

(partitionby.

..orderby.

..)dense_rank(

)over

(partitionby.

..orderby.

..)rank(

)over

(partitionby.

..orderby.

..)

2、聚合

sum/mean(

)over

(partitionby.

..orderby.

..)

3、其他

--取得該欄位分組排序之後的第乙個

first_value(字段)

over

(partitionby.

..orderby.

..)--取得該欄位第乙個到當前字段排序後的最後乙個

last_value(字段)

over

(partitionby.

..orderby.

..)--取得該欄位分組排序之後的最後乙個

last_value(字段)

over

(partitionby.

..order

by 字段 rows

between

unbounded

preceding

andunbounded

following

)--偏移開窗函式

lag/lead(字段,偏移量,空轉值)

over

(partitionby.

..orderby.

..)--欄位佔分組後對應字段總和的比值

ratio_to_report(字段)

over

(partitionby.

..orderby.

..) ratio_to_report(

) 括號中就是分子,over

() 括號中就是分母

rank 開窗函式 排序類開窗函式

1,row number over 排序,連續 select score,row number over from sc 按原始 的成績順序進行排序 原始 成績順序 先將分數從大到小排序,分數相同,排名不同 select score,row number over order by score fr...

oracle開窗函式

1.使用row number分頁,查詢第1 10條資料 select t.custid,t.companyname,t.address,t.city from select row number over order by custid as rownum,custid,companyname,ad...

開窗函式簡介

比如我們想查詢每個工資小於5000元的員工資訊 城市以及年齡 並且在每行中都顯示所有工資小於5000元的員工個數,執行下面的sql語句 這個語句顯然是錯誤的,因為count 是聚合函式,然後fname和fage欄位沒有包含分組裡面。那麼,這樣寫呢?sql view plain copy select...