等级和顺序似乎都是排序,但等级的功能不应该太灵活和强大。
Order by只是一种排序,例如:从成绩单中选择学生的姓名、科目和分数,order by score desc。
但当学生人数较多时,order by只能看到学生成绩的大致分布,看不到具体排名。想知道排名,就得玩rank,比如:从成绩单中选择学生的姓名,科目,分数,rank over作为排名。使用这个排名有一个好处。如果有并列排名,后面的排名会自动累加增加。比如有三个并列第二,然后下一个第五。如果不希望排名累计上升,就写成:从成绩单中选择学生姓名,科目,分数,dense_rank over作为排名。就这样,三个并列第二后,排名依然是第三。
以上方法由拉通排名,无论语文、数学、英语,从高到低。
Rank也可以按地区查询,也就是说,如果我们要对每一个科目单独排序,可以这样写:从成绩单中选择学生姓名、科目、分数、rank over作为排名。