MySQL ROW_NUMBER()函数
为结果集中的每一行生成序列号
MySQL ROW_NUMBER()从8.0版开始引入了功能。这ROW_NUMBER()是一个窗口函数或分析函数,它为从1开始应用的每一行分配一个序号。
ROW_NUMBER() OVER (<partition_definition> <order_definition>)
PARTITION BY子句将行分成更小的集合。表达式可以是将在GROUP BY子句中使用的任何有效表达式。您可以使用以逗号分隔的多个表达式。
PARTITION BY条款是可选项。如果省略它,则整个结果集被视为分区。但是,当您使用PARTITION BY子句时,每个分区也可以被视为一个窗口。
ORDER BY子句的目的是设置行的顺序。此ORDER BY子句独立ORDER BY于查询的子句。
功能:
1)为行分配序号
2)找到每组的前N行
3)删除重复的行
4)使用ROW_NUMBER()函数分页
https://www.begtut.com/mysql/mysql-row-number-function.html