窗口函数 ROW_NUMBER

窗口函数 ROW_NUMBER 1.ROW_NUMBER窗口函数介绍ROW_NUMBER()是 SQL 标准中的窗口函数(Window Function),它为结果集中的每一行分配一个唯一的、连续的序号。基本语法sqlROW_NUMBER() OVER ( [PARTITION BY partition_expression, ...] ORDER BY sort_expression [ASC|DESC], ... )子句作用PARTITION BY分组:将数据按指定字段分组,每组内独立编号(可选)ORDER BY排序:定义每组内的排序规则,决定编号顺序(必选)ROW_NUMBER()编号:从1开始,按顺序递增如果不指定PARTITION BY,则全局编号。示例:每辆车按时间倒序编号sqlSELECT plate_number, grossTime, ROW_NUMBER() OVER ( PARTITION BY plate_number ORDER BY grossTime DESC ) AS rn FROM weigh_record;结果:plate_numbergrossTimern川A0012026-08-20 10:00:001 ← 最新川A0012026-08-19 10:00:002川A0012026-08-18 10:00:003川B0022026-08-20 09:00:001川B0022026-08-19 09:00:0022. 使用限制限制说明MySQL 版本需要MySQL 8.0+,5.7 及以下不支持不能直接用于 WHERE窗口函数的结果不能直接在 WHERE 中过滤(