MySQL怎样实现组内排序
发布时间:2022-02-24 09:33:09 所属栏目:MySql教程 来源:互联网
导读:MySQL如何实现组内排序?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧! 我们要在MySQL中实现Oracle中的rank()函数功能,即组内排序,具体来说: 就是对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; END ;; 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如何实现组内排序大概了解了吗? (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |