加入彼此相隔 30 秒内的时间戳?
Joining on a timestamp within 30 seconds of each other?
我有一个查询,我试图在其中加入一个时间戳,但由于在一个 table 中没有确切的时间戳,而且只有每 30 秒一次,我可以在这种情况下加入吗?
SELECT * FROM table loc
LEFT JOIN table dest ON loc.id = dest.id AND loc.timestamp = dest.timestamp
除了连接的第二个 ON 部分,如果 loc.timesamp = dest.timestamp 如果它们在彼此的 30 秒内
谢谢
可以表示为:
SELECT *
FROM table loc LEFT JOIN
table dest
ON loc.id = dest.id AND
loc.timestamp >= dest.timestamp - INTERVAL '30' SECOND AND
loc.timestamp <= dest.timestamp + INTERVAL '30' SECOND;
考虑:
SELECT *
FROM table loc
LEFT JOIN table dest
ON loc.id = dest.id
AND loc.timestamp
BETWEEN dest.timestamp - interval '30' second
AND dest.timestamp + interval '30' second
虽然这会起作用;您需要考虑加入间隔 dest
table 中存在多条记录的风险。如果发生这种情况,那么您最终会在结果集中得到重复的 loc
记录。根据您的数据,这可能会发生也可能不会发生。
我有一个查询,我试图在其中加入一个时间戳,但由于在一个 table 中没有确切的时间戳,而且只有每 30 秒一次,我可以在这种情况下加入吗?
SELECT * FROM table loc
LEFT JOIN table dest ON loc.id = dest.id AND loc.timestamp = dest.timestamp
除了连接的第二个 ON 部分,如果 loc.timesamp = dest.timestamp 如果它们在彼此的 30 秒内
谢谢
可以表示为:
SELECT *
FROM table loc LEFT JOIN
table dest
ON loc.id = dest.id AND
loc.timestamp >= dest.timestamp - INTERVAL '30' SECOND AND
loc.timestamp <= dest.timestamp + INTERVAL '30' SECOND;
考虑:
SELECT *
FROM table loc
LEFT JOIN table dest
ON loc.id = dest.id
AND loc.timestamp
BETWEEN dest.timestamp - interval '30' second
AND dest.timestamp + interval '30' second
虽然这会起作用;您需要考虑加入间隔 dest
table 中存在多条记录的风险。如果发生这种情况,那么您最终会在结果集中得到重复的 loc
记录。根据您的数据,这可能会发生也可能不会发生。