【发布时间】:2019-12-12 14:51:38
【问题描述】:
我有以下当前表格:
table_1
id | timestamp | origin | info
table_2
id | timestamp | origin | type
我的目标是为表 2 中的每一行找到表 1 中的原始事件。我只想保留第一个。 例如:
table 1
1 | 1000 | "o1" | "i1"
2 | 2000 | "o2" | "i2"
3 | 2010 | "o2" | "i2"
table 2
1 | 1010 | "o1" | "t1"
2 | 2100 | "o2" | "t2"
我的预期结果是:
table_2.id | table_2.timestamp | table_2.origin | table_2.type | table_1.info | table_1.timestamp
1 | 1010 | "o1" | "t1" | "i1" | 1000
2 | 2100 | "o2" | "t2" | "i2" | 2010
目前我只是在 origin 和 table_2.timestamp > table_1.timestamp 上使用简单的连接,这给了我:
table_2.id | table_2.timestamp | table_2.origin | table_2.type | table_1.info | table_1.timestamp
1 | 1010 | "o1" | "t1" | "i1" | 1000
2 | 2100 | "o2" | "t2" | "i2" | 2000
2 | 2100 | "o2" | "t2" | "i2" | 2010
如您所见,我不想要上面的第二行,因为我只想要 table_1 中第一个最近的事件。
有什么想法吗?
【问题讨论】:
标签: sql postgresql join greatest-n-per-group