我有一个 PostgreSQL 数据库,其中包含由几个司法管辖区编写的交通票。
一些司法管辖区没有说明是否在一个交通站写了多张票。但是,这可以通过分析其他领域来推断。考虑以下数据:
ticket_id timestamp drivers_license
----------------------------------------------
1 2008-08-07 01:51:00 11111111
2 2008-08-07 01:51:00 11111111
3 2008-08-07 02:02:00 22222222
4 2008-08-07 02:25:00 33333333
5 2008-08-07 04:23:00 44444444
6 2008-08-07 04:23:00 55555555
7 2008-08-07 04:23:00 44444444
我可以推断:
- 票 1 和 2 写在一个交通站,因为它们共享驾驶执照号码和时间戳。
- 5 和 7 相同,但请注意票 6 在它们之间的位置。也许另一名官员同时在其他地方写了一张罚单,或者数据输入操作员输入了乱序的东西。
我想为每个交通站点添加另一个具有唯一 ID 的列。它不会是表的主键,因为它会有重复的值。例如:
ticket_id timestamp drivers_license stop_id
--------------------------------------------------------
1 2008-08-07 01:51:00 11111111 1
2 2008-08-07 01:51:00 11111111 1
3 2008-08-07 02:02:00 22222222 2
4 2008-08-07 02:25:00 33333333 3
5 2008-08-07 04:23:00 44444444 4
6 2008-08-07 04:23:00 55555555 5
7 2008-08-07 04:23:00 44444444 4
我可以想到使用 C# 执行此操作的计算密集型、贪心算法的方法,但是是否有一个有效的 SQL 查询可以工作?