Mysql排名(并列排名与不并列排名)

   日期:2024-12-29     作者:caijiyuan      
核心提示:  sql中有排名函数rank()用来排序,但MySQL没有可排名函数。所以,在mysql中需要自己实现排名。  假设有张表 t1

  sql中有排名函数rank()用来排序,但MySQL没有可排名函数。所以,在mysql中需要自己实现排名。

Mysql排名(并列排名与不并列排名)

  假设有张表 t1(id,score), 根据t1表中的score进行分数从大到小进行排名。
  此时能够很容易想到根据score从大到小排序,我们可以写个 order by score desc 倒序处理。至于排名的序号,就有点难度了。通过引入一个临时变量(mysql中 @变量名称的用法,我们可以很容易根据数据记录的顺序得出排名。

  根据上述的思路,以表t1为例,可以得出排名sql写法如下

 
 
 

  上述图中,可以看到记录3与记录4的score是相同的,大部分情况下需要并列排名。并列排名因为序号相同,那下一名次的是从什么排名开始呢
  有两种情况

  • 1、并列排名不占位 :如上图中,有2个分数相同,并列第一名,下一名次从第二名开始排名,即名次为【1,1,2,3】
  • 2、并列排名占位:上图中,2个分数相同,在并列第一名后,由于已经有2个人在前面排了名次,所以从第三名开始排,即名次为【1,1,3,4】

  并列排名不占位sql如下

 
 
 

  并列排名占位sql如下

     本文地址:http://w.yusign.com/tjnews/3443.html    述古往 http://w.yusign.com/static/ , 查看更多
 
标签: 排名
特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。

举报收藏 0打赏 0
 
更多>同类生活信息

相关文章
最新文章
推荐文章
推荐图文
生活信息
点击排行
{
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  版权声明  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号