Table point
holds the x coordinate of some points on x-axis in a plane, which are all integers.
Write a query to find the shortest distance between two points in these points.
| x | |-----| | -1 | | 0 | | 2 |
The shortest distance is ‘1‘ obviously, which is from point ‘-1‘ to ‘0‘. So the output is as below:
| shortest| |---------| | 1 |
Note: Every point is unique, which means there is no duplicates in table point
.
Follow-up: What if all these points have an id and are arranged from the left most to the right most of x axis?
Code
Note: 注意要加上 x1.x != x2.x, 否则总是0
SELECT MIN(ABS(x1.x - x2.x)) AS shortest FROM point as x1 JOIN point as x2 WHERE x1.x != x2.x
原文地址:https://www.cnblogs.com/Johnsonxiong/p/9551752.html
时间: 2024-11-10 12:37:59