四、mysql窗口函数之row_number()函数的使用
1、窗口函数之row_number()使用背景
窗口函数中,排序函数rank(),dense_rank()虽说都是排序函数,但是各有用处,假如像上章节说的“同组同分”两条数据,我们不想“班级名次”出现“越级”和“同号”,那么我们需要像excel行号一样依次递增,那么就需要使用row_number()这个函数。

“班级名次”出现同号

“班级名次”出现跳级
2、窗口函数使用方法
窗口函数row_number()跟rank()和dense_rank()的使用方法基本一致。所以只要清楚使用它们后,明白他们之间的差异就行了。使用row_number()函数后,你会发现“同组同分”的“班级名次”会按照像EXCEL行号一样依次递增。
SELECT
id,
NAME AS '姓名',
score AS '分数',
class AS '班级',
row_number() over (PARTITION BY class ORDER BY score DESC) AS '班级名次'
FROM
backup_csm.`demo`

班级名次的值按照行号递增
总结:窗口函数中的排序函数就算告一段落了,后续还会陆续分享其他窗口函数,例如聚合函数、分箱函数等的使用方法。