MySQL-窗口函数
1. row_number()
-
解释:
row_number函数,按照指定的字段分组、排序,并对每组中的数据进行排序编号; -
参数:
row_number() over(partition by 分组字段 order by 排序字段) -
例子:
每个学生的各科成绩按照分数倒序排列并标记序号: select student_id ,student_name,subject_name, score , row_number() over(partition by student_id order by score desc) as rn from score
-
结果:
student_id | student_name | subject_name | score | rn |
---|---|---|---|---|
110203 | 张三 | 数学 | 98 | 1 |
110203 | 张三 | 语文 | 89 | 2 |
110203 | 张三 | 英语 | 88 | 3 |
110201 | 李四 | 语文 | 93 | 1 |
110201 | 李四 | 英语 | 91 | 2 |