mysql 排行_Mysql之成绩排名
时间: 2023-07-02 14:13:21 浏览: 155
mysql排序查询
要实现成绩排名,可以使用MySQL的变量来实现。以下是一个示例查询:
```
SELECT
s.id,
s.name,
s.score,
@rank := IF(@prev_score = s.score, @rank, @rank + 1) AS rank,
@prev_score := s.score
FROM
students s,
(SELECT @rank := 0, @prev_score := NULL) r
ORDER BY s.score DESC;
```
该查询将按照成绩降序排列学生,并使用MySQL变量@rank和@prev_score来计算每个学生的排名。注意,在查询之前,需要先将@rank和@prev_score设置为0和NULL。
查询结果将包含每个学生的ID、姓名、成绩和排名,类似于下面的输出:
```
+----+-------+-------+------+
| id | name | score | rank |
+----+-------+-------+------+
| 1 | Alice | 90 | 1 |
| 2 | Bob | 85 | 2 |
| 3 | Carol | 85 | 2 |
| 4 | Dave | 80 | 4 |
+----+-------+-------+------+
```
其中,Alice排名第一,Bob和Carol并列第二,Dave排名第四。
阅读全文