没有连接的两列之间的区别?

时间:2018-10-12 20:45:33

标签: postgresql

说我有两个桌子。一张表格,用于显示行驶中的车辆的当前位置(名称,纬度,经度)。另一个表包含城市的位置(名称,纬度,经度)。这些表之间没有共同的值。

我想找到每辆车最靠近的城市。我该怎么办?

1 个答案:

答案 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行结束的情况下,它可以快速运行。也许还有更多更好的解决方案。