編寫SQL查詢以對分數進行排名。 如果兩個分數之間存在平局,則兩者應具有相同的排名。 請注意,在平局之后,下一個排名數應該是下一個連續的整數值。 換句話說,等級之間不應該存在“漏洞”。
-
+----+-------+
-
| Id | Score |
-
+----+-------+
-
| 1 | 3.50 |
-
| 2 | 3.65 |
-
| 3 | 4.00 |
-
| 4 | 3.85 |
-
| 5 | 4.00 |
-
| 6 | 3.65 |
-
+----+-------+
例如,給定上面的scores表,您的查詢應生成以下報告(按最高分數排序):
-
+-------+------+
-
| Score | Rank |
-
+-------+------+
-
| 4.00 | 1 |
-
| 4.00 | 1 |
-
| 3.85 | 2 |
-
| 3.65 | 3 |
-
| 3.65 | 3 |
-
| 3.50 | 4 |
-
+-------+------+
實現sql如下:
select Score, (select count(distinct Score) from scores where Score >= mq.Score) Rank from scores as mq order by Score desc