Rank排序问题

编写一个 SQL 查询来实现分数排名。如果两个分数相同,则两个分数排名(Rank)相同。请注意,平分后的下一个名次应该是下一个连续的整数值。换句话说,名次之间不应该有“间隔”。

原表

排序后的表:

排序后的结果

实现过程:

知识点:

(1)sql语句中,使用@来定义一个变量,如@curRank                                                                        (2)使用 := 给上述变量进行赋值,即@curRank := 0                                                                         (3)这里的(SELECT @curRank := 0, @prevRank := null)  r的作用是:在同一个select语句中给变量curRank和变量prevRank赋初始值。效果等同于,两个sql语句,第一个先赋值,第二个再select    (4)cast(expression as data_type)还函数是SQL中进行数据转换的方法

你可能感兴趣的:(Rank排序问题)