此题目考察窗口函数三种排名函数的区别
1.rank(),按值排序,值相等时不会重复;
2.row_number(),按值排序,值相等时会重复,会产生空位;
3.dense_rank(),按值排序,值相等时会重复,不会产生空位;
根据题目要求,选择 dense_rank()

select *
      ,dense_rank() over (order by number desc) as t_rank
from  passing_number
order by t_rank,id

值得注意的是,排名相等时,按照 id 升序排序,所以,为了保险起见,最后要加上 order by t_rank,id