RANK() 這個 function 和之前介紹過的 ROW_NUMBER() 不論是用法或是效果上都是一樣的(請按此連到 ROW_NUMBER() 文章),所以此處就不介紹用法了。不過雖然用法和效果一樣,但是 RANK() 在為欄位做排序的值和 ROW_NUMBER() 就有些不同了。
當遇到相同的欄位值時,ROW_NUMBER() 還是會一路從1、2、3、4…這樣排下去,但是 RANK() 則是會把相同的欄位編成相同排序值,然後下個不同的值則跳號過去,結果就會像1、2、2、4…這樣。舉例來說:
以下為用 ROW_NUMBER() 的結果
| 分數 | 排名 |
| 90 | 1 |
| 85 | 2 |
| 85 | 3 |
| 80 | 4 |
若是改用 RANK() 則是
| 分數 | 排名 |
| 90 | 1 |
| 85 | 2 |
| 85 | 2 |
| 80 | 4 |
因此如果有需要做這種名次計算與排序時,RANK() 這個方法會比 ROW_NUMBER() 更加的適合!
文章標籤
全站熱搜
