编写一个 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中进行数据转换的方法
网友评论