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;