【发布时间】:2017-04-08 16:55:39
【问题描述】:
我在 PostgreSQL 中有一个如下表
表格1date_time | make | model | miles | reg_no | age_months
----------------------------------------------------------------------
2016-09-28 20:05:03.001 | toyota | prius | 10200 | 1111 | 22
2016-09-28 20:05:03.001 | suzuki | sx4 | 10300 | 1122 | 12
2016-09-28 20:03:03.001 | suzuki | sx4 | 11200 | 1133 | 34
2016-09-28 20:02:03.001 | toyota | prius | 15200 | 1144 | 28
2017-05-28 20:11:03.001 | toyota | prius | 15500 | 1144 | 36
我需要添加一个从 1 开始的列 record_num,并为表中的每条记录自动递增 1 - 由于权限限制,我无法更改表,因此需要通过 select 操作来完成。
预期的输出如下所示。
表2date_time | make | model | miles | reg_no | age_months | record_num
-----------------------------------------------------------------------------------
2016-09-28 20:05:03.001 | toyota | prius | 10200 | 1111 | 22 | 1
2016-09-28 20:05:03.001 | suzuki | sx4 | 10300 | 1122 | 12 | 2
2016-09-28 20:03:03.001 | suzuki | sx4 | 11200 | 1133 | 34 | 3
2016-09-28 20:02:03.001 | toyota | prius | 15200 | 1144 | 28 | 4
2017-05-28 20:11:03.001 | toyota | prius | 15500 | 1144 | 36 | 5
编辑:
table1 中的日期时间不按顺序排列。但是record_num 需要按照table1 中的顺序排列。
【问题讨论】:
-
没有“表格的顺序”这样的东西。关系数据库中的行是 NOT 排序的。 only(真的:唯一)获取特定订单的方法是使用
order by。 -
检查我的答案。我认为它适合你的条件
标签: sql postgresql