例如一个表(task)的结构如下:
+---------+-------------+--------+---------+------------+---------------------+
| id | sub_id | updatetime |
+---------+-------------+--------+---------+------------+---------------------+
| 1 | 1 | 2022-11-21 11:34:22 |
| 1 | 2 | 2022-11-21 11:35:02 |
| 2 | 3 | 2022-11-21 11:35:47 |
现在想给每一行增加一个行号,方便查看。sql 语句如下
select id, sub_id, row_number() over (partition by id order by sub_id), updatetime from tasks;
row_number()
- 给一行结果编号over
- 指定按照哪个字段进行编号partition
- 按照哪个字段分组,如果没有写partition by
的条件,那么就会不分组order by
- 按照哪个字段进行顺序编号
参考:https://baijiahao.baidu.com/s?id=1727606549128773553&wfr=spider&for=pc