MySQL排序rank

在数据库操作中,常需对数据进行排序,例如成绩表按成绩排名。MySQL无开窗函数,无法直接使用排序rank。以下是两个排序操作方法。一:自变量法排序 首先创建成绩表score,包含分数mark。使用ORDER BY对mark进行降序排序。定义自变量@r和@m用于计算排名。自变量赋值使用(:=)。代码如下,第9行排序,第7行和...
MySQL排序rank
在数据库操作中,常需对数据进行排序,例如成绩表按成绩排名。MySQL无开窗函数,无法直接使用排序rank。以下是两个排序操作方法。
一:自变量法排序
首先创建成绩表score,包含分数mark。使用ORDER BY对mark进行降序排序。定义自变量@r和@m用于计算排名。自变量赋值使用(:=)。代码如下,第9行排序,第7行和第10行赋值。设置排名时,发现将排名字段rank_mark设置为rank或Rank会报错,注意避免。
若要求排名不连续,结果如下。代码如下,增加判断逻辑。
排名逻辑多样,如按班级排名,需判断班级是否一致。关键在于合理使用自定义变量,难点在于变量赋值和判断等。
二:自交法排序(左交法)
自交法是将自己与自己对比,计算比自己分数高的数量。示例数据中,有8名学生的成绩,需从高到低排序,输出包括sno、degree和rank_degree。代码展示如下。解释是:给a表每个sno的degree,统计b表中大于其degree的数量。最高分的sno对应数量为0,最低分的sno对应数量为总数减1(不包括自己)。2024-10-25
mengvlog 阅读 52 次 更新于 2025-10-30 08:12:11 我来答关注问题0
檬味博客在线解答立即免费咨询

mySQL相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部