mysql根据字段值进行排名运算

不留名
2021-11-13 / 0 评论 / 418 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2021年11月13日,已超过1150天没有更新,若内容或图片失效,请留言反馈。

8.0之前

  1. 递增排序,排序字段值相同排序递增
select ranks from (select id,name,@rank:=@rank+1 as ranks from user u, (select @rank:=0) ran order by u.age) r where id=xxx

8.0

  1. 占位排序,排序字段值相同,排序相同
select ranks from (select user_id, rank() over(order by price desc) as ranks  from bid  ) res where user_id=xxx
  1. 递增排序
  • rank()换成 row_number() 不会出现相同排序,一直递增

分类排序

SELECT  a.stu_id,a.point,
IF( @className = a.class_name,@rank := @rank + 1,@rank :=1 ) AS rank,
(@className := a.class_name) class_name
          FROM TMP_A   a,  ( select @rank :=0,@className := NULL ) b
ORDER BY a.class_name, a.point DESC ;

排序

SELECT  a.stu_id,a.point,
@rank:=case when @className = a.class_name then @rank := @rank + 1
when @className := a.class_name   then @rank :=1
when  a.class_name =0 then @rank :=1 else ‘’ end rank,
@className := a.class_name 
FROM TMP_A   a,  ( select @rank :=0,@className := NULL ) b
ORDER BY a.class_name, a.point DESC ;
0

评论 (0)

OωO
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
  • 表情
泡泡
阿鲁
颜文字
取消