1. 程式人生 > >sql 中 rank() over,dense_rank(),row_number() 的區別

sql 中 rank() over,dense_rank(),row_number() 的區別

.com 兩種 特點 查詢 row 有一個 jin 是的 指定

rank() over是的作用是查出指定條件後進行一個排名,但是有一個特點。假如是對學生排名,那麽實用這個函數,成績相同的兩名是並列,例如下圖1 2 2 4。

dense_rank()的作用和rank()很像,唯一的一點區別就是,領命學生的成績並列以後,下一位同學並不空出並列所占的名次,例如下圖1 2 2 3。

row_number()就不一樣了,它和上面兩種的區別就很明顯了,這個函數不需要考慮是否並列,哪怕根據條件查詢出來的數值相同也會進行連續排名,如下圖

https://jingyan.baidu.com/article/597035521ff2ec8fc107404b.html

sql 中 rank() over,dense_rank(),row_number() 的區別