多个表

问题描述:

之间的直方图距离这里以下this question续集多个表

背景我有2个数据库:事件(400K行整个年)和汽车(6万行每月)。较小的样本是here看起来像这样input db 事件具有位置x y。汽车具有car_id,time_now,time_prev,time_next以及位置x y。

预期结果应该是在事件发生时间±德尔塔时间时从每个事件到所有汽车的距离的直方图。 或者,对于每个事件,在事件发生时±δ的情况下,每辆车都有距离表。如果没有任何工作,可能会添加到表事件列closest_car_0min,closest_car_5min,closest_car_15min,closest_car_30min。

我想用ST_Distance来计算距离(PostGIS扩展)。

我也创建了time_prev和time_next,因为我想检查事件events.date_±1小时的时间是否落在从time_prev到time_now或从time_now到time_next的时间间隔内。

问题:好吧,我该怎么做?

更新澄清,我加入想要的结果here看起来像这样results

我想我找到了答案。以下工作:

--create empty table for results and fix key 
create table results 
(
    resultID serial NOT NULL, 
    vehicle_id numeric(10,0), 
    eventid numeric(10,0), 
    deltaMIN interval MINUTE, 
    distance_m32138 double precision, 
    eventtime timestamp without time zone, 
    time_now timestamp without time zone, 
    time_prev timestamp without time zone, 
    time_next timestamp without time zone 
) 
; 
alter table results add CONSTRAINT results_pkey PRIMARY KEY (resultID); 

INSERT INTO results 
(vehicle_id, eventid, deltaMIN, distance_m32138, eventtime, time_now, time_prev,time_next) 
select 
    vehicle_id, 
    eventid, 
    deltaMIN, 
    ST_Distance (
     ST_Transform(toy_events.geom ,32138), 
     ST_Transform(toy_cars.geom ,32138) 
     ) AS distance_m32138, 
    eventtime, time_now, time_prev, time_next 
from 
    toy_events, 
    toy_cars, 
    deltas 
where 
    eventtime between time_prev and time_next 
    or 
    (
     eventtime - deltamin between time_prev and time_now 
     or 
     eventtime + deltamin between time_now and time_next 
    )  
; 
select * from results;