平面上的最近距离
题目分析:题目要求的就是两个点之间的最短距离,我们可以先使用inner join 将x,y的坐标连接在一起,然后进行计算就行了
先将x和y连接在一起
select * from point_2d p1 inner join point_2d p2 on p1.x != p2.x and p1.y != p2.y;
tips:这个地方inner join后面是加了条件判断的,坐标要满足相应的要求才可以连接,注意使用的是or而不是and,因为两个点只要有一个不一样那就是不同的点。
接着计算结果
select round(sqrt(min(POW(p1.x - p2.x, 2)+POW(p1.y - p2.y, 2))),2) shortest from point_2d p1 inner join point_2d p2 on p1.x != p2.x or p1.y != p2.y;
提交结果如下: