我们正在尝试根据最近的地理距离将事件与线路进行匹配
--pseudo code
LATERAL JOIN (
SELECT line_id, geom
FROM lines
ORDER by distance(lines.geom, events.geom)
LIMIT 1) nearest_line
有时,值得注意的是,会出现平局。我们希望确保如果使用相同的数据集再次运行我们的 ETL 管道,返回的结果会相同。一个想法是将其包含line_id
在 中ORDER BY
,但这可能会使我们的匹配结果偏向更低的line_id
。如果我们的 ETL 必须在相同的数据集上重新运行,有没有办法随机打破平局,从而产生相同的输出?
我正在考虑类似的方法,但要根据和 的random()
组合来设置种子。像在 ID 上使用 这样的方法可以吗?event_id
line_id
mod()