mysql排名問題
使用mysql內置函數
row_number() over (order by val) as 'row_number'
:1,2,3,4,5,6
rank() over (order by val) as 'rank'
:1,2,3,3,5,6
dense_rank() over (order by val) as 'dense_rank'
:1,2,3,3,4,5
1.row_number() over (order by val) as 'row_number'
:1,2,3,4,5,6···
例如:
創建這樣一個表chengji:
現在按照score從高到低不重複排名
select *,row_number over (order by score desc) as 'row_number'
from chengji;
2.rank() over (order by val) as 'rank'
:1,2,3,3,5,6···
例如創建一個表chengji
select *,rank() over (order by score desc) as 'rank'
from chengji;
3.dense_rank() over (order by val) as 'dense_rank'
:1,2,3,3,4,5,6···
例如創建一個表chengji
select *,dense_rank() over (order by score desc) as 'dense_rank'
from chengji;