说我有两个桌子。一张表格,用于显示行驶中的车辆的当前位置(名称,纬度,经度)。另一个表包含城市的位置(名称,纬度,经度)。这些表之间没有共同的值。
我想找到每辆车最靠近的城市。我该怎么办?
答案 0 :(得分:0)
我自己得到了答案,这就是那些偶然遇到相同问题的人的样子:
drop table if exists t_loc_foun;
create temp table t_loc_foun as
with a as
(select
car, latest_lat, latest_lon
from
t_car_unique),
b as
(select
lat, lon, lo_city_code
from
as_poi)
select
*, sqrt((latest_lat - lat)^2) as lat_diff, sqrt((latest_lon - lon)^2) as lon_diff
from
a, b;
With子句允许我将行放在一起,然后减去列中的所有值。在我以1,000,000行结束的情况下,它可以快速运行。也许还有更多更好的解决方案。