关于排名的sql,相同的数排名是并列,接下来的数的排名顺延一位

比如我有一组数‘30,32,32,33,34,34,34,35’需要进行排名,相同的数排名是并列,接下来的数的排名顺延一位,比如上面这组数从小到大的排名就是1,2,2,4,5,5,5,8

请问如果写sql的话,是mysql的数据库,如何将这列数进行排名写成sql的形式

麻烦帮我写一个完整的sql,谢谢

SQL mmc0112 发布于 2023-11-17 14:28 (编辑于 2023-11-17 14:30)
1min目标场景问卷 立即参与
回答问题
悬赏:0 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
FuFuLv5初级互助
发布于2023-11-17 14:30(编辑于 2023-11-17 14:45)

DENSE_RANK() 

https://blog.csdn.net/qq_26820793/article/details/126238058

最佳回答
0
快乐星光Lv5中级互助
发布于2023-11-17 14:57

with AA as (

select 30 tt

union all select 32

union all select 32

union all select 33

union all select 34

union all select 34

union all select 34

union all select 35

)

select tt,dense_rank() over(order by tt) tsort from AA

  • mmc0112 mmc0112(提问者) 这个是不是mysql数据库用不了吧
    2023-11-17 16:37 
  • 快乐星光 快乐星光 回复 mmc0112(提问者) 这个就是mysql !
    2023-11-17 16:38 
  • mmc0112 mmc0112(提问者) 回复 快乐星光 好像是版本的问题 用不了。。。
    2023-11-17 16:42 
  • 快乐星光 快乐星光 回复 mmc0112(提问者) 你扯淡呢,这个函数在mysql和sqlserver都是一样的,该语句在这两个编辑器都能运行,把运行错误贴出来
    2023-11-17 16:50 
  • 快乐星光 快乐星光 回复 mmc0112(提问者) 我错了,确实版本低了不行,自己写函数实现吧:https://blog.csdn.net/u011726005/article/details/94592866
    2023-11-17 16:52 
  • 3关注人数
  • 209浏览人数
  • 最后回答于:2023-11-17 14:57
    请选择关闭问题的原因
    确定 取消
    返回顶部