首页 数据库 mysql

四、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`


班级名次的值按照行号递增

总结:窗口函数中的排序函数就算告一段落了,后续还会陆续分享其他窗口函数,例如聚合函数、分箱函数等的使用方法。

相关推荐