表: 成绩表 +------+-----+ 字段名称 类型 +------+-----+ 学号 int 成绩 int +------+-----+ 学号 是该表的主键。 该表的每一行表示 一个学生的成绩,包含学生的学号和成绩。 编写一个 SQL 查询,得出学生的升序降序排名。 查询结果如下例所示。 示例 1: 输入: 表:成绩表 +----+----+ 学号 成绩 +----+----+ 1 80 2 75 3 88 4 76 5 91 6 99 +----+----+ 输出: +----+----+--------+--------+ 学号 成绩 成绩升序排名 成绩降序排名 +----+----+--------+--------+ 2 75 1 6 4 76 2 5 1 80 3 4 3 88 4 3 5 91 5 2 6 99 6 1 +----+----+--------+--------+ 解释: 使用排序窗口函数,按成绩进行升序(order by 成绩 asc)和降序(order by 成绩 desc)排序即可得出对应排名。
示例1
输入
CREATE TABLE 成绩表
(
学号 INT,
成绩 INT
);
INSERT INTO 成绩表 (学号, 成绩) VALUES (1, 80);
INSERT INTO 成绩表 (学号, 成绩) VALUES (2, 75);
INSERT INTO 成绩表 (学号, 成绩) VALUES (3, 88);
INSERT INTO 成绩表 (学号, 成绩) VALUES (4, 76);
INSERT INTO 成绩表 (学号, 成绩) VALUES (5, 91);
INSERT INTO 成绩表 (学号, 成绩) VALUES (6, 99);
输出
学号|成绩|成绩升序排名|成绩降序排名
6|99|6|1
5|91|5|2
3|88|4|3
1|80|3|4
4|76|2|5
2|75|1|6
加载中...