共计 878 个字符,预计需要花费 3 分钟才能阅读完成。
自动写代码机器人,免费开通
MySQL 如何实现组内排序?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是丸趣 TV 小编给大家带来的参考内容,让我们一起来看看吧!
假设表格为 student, 数据如下:
我们要在 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 如何实现组内排序大概了解了吗?希望文章内容对大家有所帮助。如果想了解更多相关文章内容,欢迎关注丸趣 TV 行业资讯频道。
向 AI 问一下细节丸趣 TV 网 – 提供最优质的资源集合!
正文完