178.Rank_Scores

来源:互联网 发布:张靓颖 冯轲 知乎 编辑:程序博客网 时间:2024/05/22 03:46

Write a SQL query to rank scores. If there is a tie between two scores, both should have the same ranking. Note that after a tie,the next ranking number should be the next consecutive integer value.

#+----+-------+#| Id | Score |#+----+-------+#| 1  | 3.50  |#| 2  | 3.65  |#| 3  | 4.00  |#| 4  | 3.85  |#| 5  | 4.00  |#| 6  | 3.65  |#+----+-------+

For example, given the above Scores table, your query should generate the following report (order by highest score):

#+-------+------+#| Score | Rank |#+-------+------+#| 4.00  | 1    |#| 4.00  | 1    |#| 3.85  | 2    |#| 3.65  | 3    |#| 3.65  | 3    |#| 3.50  | 4    |#+-------+------+

sql脚本

SELECT  Score,  @rank := @rank + (@prev <> (@prev := Score)) RankFROM  Scores,  (SELECT @rank := 0, @prev := -1) initORDER BY Score DESC
原创粉丝点击