如何解决有没有办法在二维空间中使用 SQL 找到它们之间距离最小的点?
我有这个数据集。我需要找出与 2D 空间中所有其他点之间的距离相比,它们之间距离最小的 2 个点。有人可以帮助我了解如何使用 SQL 执行此操作吗?
解决方法
您需要定义距离。一种定义是曼哈顿距离,它是绝对值的总和。使用这个定义:
select t1.*,t2.*
from t t1 join
t t2
on t1.id < t2.id
order by abs(t1.x - t2.x) + abs(t1.y - t2.y)
fetch first 1 row only;
注意:这种操作代价高昂,而且优化起来很棘手。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。