MySQL8.0以下实现返祖排名窗口函数
在MySQL高版本中支持row_number等窗口函数来完成分组排序,但是在老版本MySQL中不支持该窗口函数,那么如何让实现类似于row_number窗口函数的类似功能呢?
实现方法
在列筛选位置利用case..end 配合when..then来实现
具体实现代码如下
select id,name,class,score,
case @temp_class # 临时class
when class then @rk:=@rk+1
else @rk:= 1
end 排名, # 此处的排名为自定义名称
@temp_class:=class
#令临时class等于真实class
from tb_score,
(select @temp_class:= '',@rk:=0) b
# b为自定义名称
order by class,score desc
发表评论