3
我試圖通過匹配它們的時間戳字段加上或減去一秒來連接兩個表。模糊時間戳加入Postesql並實現更好的速度
SELECT t1.id, t2.id
FROM ctc.table1 t1
INNER JOIN ctc.table2 t2
ON EXTRACT(EPOCH FROM t1.timestamp)
BETWEEN EXTRACT(EPOCH FROM t2.timestamp) - 1
AND EXTRACT(EPOCH FROM t2.timestamp) + 1
是否有更高性能的方式來編寫此查詢?
如果存在多個匹配,你想要嗎?你能把時代分成3秒的時間間隔,然後進行比較嗎? –
不,因爲如果兩個記錄在「三個第二紀元的轉向」之前稍微有點稍微之後略有差別,那麼兩個非常接近的記錄將不匹配。 – mattalxndr
我對PostgreSQL不太熟悉,但我知道它有LATERAL JOIN(類似於SQL Server中的APPLY概念)。你不能使用它嗎?類似於(僞代碼)「FROM ctc.table1 t1 LATERAL(SELECT ... FROM table2 t2 WHERE t2.timestamp between t1.timestamp - 1 and t1.timestamp + 1)? – Ruslan