壹影博客.
我在下午4点钟开始想你
MySQL8.0以下实现返祖排名窗口函数
  • 2023-4-12日
  • 0评论
  • 1044围观

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

 

发表评论

渝ICP备19011465号 | 渝ICP备19011465号-1