表?point_2d?保存了所有點(多于 2 個點)的坐標 (x,y) ,這些點在平面上兩兩不重合。
?
寫一個查詢語句找到兩點之間的最近距離,保留 2 位小數。
?
| x ?| y ?|
|----|----|
| -1 | -1 |
| 0 ?| 0 ?|
| -1 | -2 |
?
最近距離在點 (-1,-1) 和(-1,2) 之間,距離為 1.00 。所以輸出應該為:
?
| shortest |
|----------|
| 1.00 ? ? |
?
注意:任意點之間的最遠距離小于 10000 。
思路:寫出來求距離的公式,保存兩位小數,求最小即可。
SELECT MIN(ROUND( SQRT( (POW(p1.x - p2.x, 2) + POW(p1.y - p2.y, 2) ) ), 2) ) AS shortest
FROM point_2d as p1,point_2d as p2
where p1.x > p2.x OR p1.y > p2.y;
?