您的位置:首页 > 数据库 > MySQL

mysql查询成绩排名显示-两种排名方式

2017-01-09 10:06 405 查看


1 1 3 4排名方式

mysql> select * from score;
+----+-------+
| id | Score |
+----+-------+
|  1 |  36.5 |
|  2 |  37.8 |
|  3 |  40.6 |
|  4 |  42.6 |
|  5 |  36.5 |
|  6 |  36.5 |
|  7 |  42.6 |
|  8 |  40.6 |
|  9 |  22.8 |
| 10 |  42.6 |
+----+-------+
10 rows in set

mysql> select t.score,(select count(s.score)+1 from score s where s.score>t.score) rank from score t order by t.score desc;
 
+-------+------+
| score | rank |
+-------+------+
|  42.6 |    1 |
|  42.6 |    1 |
|  42.6 |    1 |
|  40.6 |    4 |
|  40.6 |    4 |
|  37.8 |    6 |
|  36.5 |    7 |
|  36.5 |    7 |
|  36.5 |    7 |
|  22.8 |   10 |
+-------+------+

10 rows in set




1 1 2 3 排序方式

mysql> select t.score,(select count(s.score)+1 from (select s.score,count(s.score) from score s group by score order by score desc) s where s.score>t.score) rank from score t order by t.score desc;
+-------+------+
| score | rank |
+-------+------+
|  42.6 |    1 |
|  42.6 |    1 |
|  42.6 |    1 |
|  40.6 |    2 |
|  40.6 |    2 |
|  37.8 |    3 |
|  36.5 |    4 |
|  36.5 |    4 |
|  36.5 |    4 |
|  22.8 |    5 |
+-------+------+
10 rows in set
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: