1.rank()
用于排序,基本语法为rank() over ([partition by col_name] [order by col_name])。
其中partition指代是否分区排序,order by 指代排序标准。
举个栗子:
按照成绩排名。
select score,rank() over (order by score desc) rank from scores;
查询结果为:

2.dense_rank()
和rank()的区别在于,遇到同一等级的数据,序号不跳跃,保持连续。
select score,dense_rank() over (order by score desc) rank from scores;
查询结果为:
若增加一个按照科目分别进行排序,可写为:
select score,dense_rank() over (partition by subject_a order by score desc) rank from scores;