MySQL如何实现组内排序

61次阅读
没有评论

共计 878 个字符,预计需要花费 3 分钟才能阅读完成。

自动写代码机器人,免费开通

MySQL 如何实现组内排序?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是丸趣 TV 小编给大家带来的参考内容,让我们一起来看看吧!

假设表格为 student, 数据如下:

MySQL 如何实现组内排序

  我们要在 MySQL 中实现 Oracle 中的 rank()函数功能,即组内排序,具体来说:就是对 student 表中按照课程 (course) 对学生 (name) 按分数 (score) 高低进行排名。

  首先新建存储过程 realize_rank_in_MySQL,代码如下:

DROP PROCEDURE IF EXISTS realize_rank_in_MySQL;
DELIMITER ;;
CREATE PROCEDURE realize_rank_in_MySQL()
BEGIN
 DECLARE i int;
 SET i = 0;
 WHILE i (select count(DISTINCT course) from student) DO
 SET @ROW =0;
 INSERT INTO student_rank
 SELECT *, (@ROW:=@ROW+1) AS rank FROM student
 WHERE course=(select DISTINCT course from student limit i,1)
 ORDER BY score DESC;
 set i = i + 1;
 END WHILE;
DELIMITER ;

然后输入以下查询语句即可:

drop table if exists student_rank;
create table student_rank like student;
alter table student_rank add rank int;
call realize_rank_in_MySQL;
select * from student_rank;

  结果如下:

MySQL 如何实现组内排序

注意:这里的排名并没有实现分数相同时排名也一样的情形。

感谢各位的阅读!看完上述内容,你们对 MySQL 如何实现组内排序大概了解了吗?希望文章内容对大家有所帮助。如果想了解更多相关文章内容,欢迎关注丸趣 TV 行业资讯频道。

向 AI 问一下细节

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-18发表,共计878字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)