У меня есть таблица с координатами X, Y каждого магазина. Я хочу найти минимальное расстояние друг с другом. Я имею в виду ближайший магазин.
Например: (требуемый вывод)
Shop_ID Nearest_Shop_ID
Shop_1 Shop_5
Shop_2 Shop_8
Shop_3 Shop_4
Select SHOP_ID, Longtitude, Latitude From PARTNER_ADDRESSES
group by SHOP_ID, Longtitude, Latitude;
Это таблица координат моего магазина;
SHOP_ID LONGTITUDE LATITUDE
38599 32.815282 39.882793
38613 25.965545 42.166315
38682 31.845157 37.419859
38686 34.027568 38.370871
У меня есть формула, которая может рассчитатьрасстояние между двумя точками (с использованием широты и долготы). Это формула:
(NVL(6387.7,0) * ACOS((sin(NVL(Latitude1,0) / 57.29577951) * SIN(NVL(Latitude2,0) / 57.29577951)) +
(COS(NVL(Latitude1,0) / 57.29577951) * COS(NVL(Latitude2,0) / 57.29577951) *
COS(NVL(Longtitude2,0) / 57.29577951 - NVL(Longtitude1,0)/ 57.29577951))))
Latitude1 : Shop 1's Latitude value
Longtitude1: Shop 1's Longtitude value
Latitude2 : Shop 2's Latitude value
Longtitude2: Shop 2's Longtitude value
Можно ли написать этот тип sql, который будет рассчитывать расстояния для каждого магазина и указывать минимальное значение расстояния для каждого магазина?