表: 成绩表 +-------------+---------+ 字段名称 类型 +-------------+---------+ 学号 int 班级 varchar 成绩 int +-------------+---------+ 该表的每一行表示某位学生所在班级及成绩 使用变量求出每个班级的成绩排名 查询结果如下例所示。 示例 1: 输入: 表:成绩表 +---------+---------+---------+ 学号 班级 成绩 +---------+---------+---------+ 0001 1 86 0002 1 95 0003 2 89 0004 1 83 0005 2 86 0006 3 92 0007 3 86 0008 1 88 +---------+---------+---------+ 输出: +---------+---------+---------+---------+ 学号 班级 成绩 排名 +---------+---------+---------+---------+ 0002 1 95 1 0008 1 88 2 0001 1 86 3 0004 1 83 4 0003 2 89 1 0005 2 86 2 0006 3 92 1 0007 3 86 2 +---------+---------+---------+---------+ 解释: 先按照班级和成绩进行排序,再利用班级和成绩两个自定义变量的值给rank变量赋值
示例1

输入

CREATE TABLE `成绩表` 
(
    `学号`   VARCHAR(512),
    `班级`   INT,
    `成绩`   INT
);
INSERT INTO `成绩表` (`学号`, `班级`, `成绩`) VALUES 
('0001', 1, 86),
('0002', 1, 95),
('0003', 2, 89),
('0004', 1, 83),
('0005', 2, 86),
('0006', 3, 92),
('0007', 3, 86),
('0008', 1, 88);

输出

学号|班级|成绩|排名
0002|1|95|1
0008|1|88|2
0001|1|86|3
0004|1|83|4
0003|2|89|1
0005|2|86|2
0006|3|92|1
0007|3|86|2
加载中...