Требуется найти все транспортные средства, которые проезжали и мимо точки погрузки в определенное время.
Единственный момент: таких точек - много.
Есть запрос:
SELECT
distinct (a.serial_num),
a.start_dt
FROM full_points a
where
start_dt >= '2017-07-31 12:00:00.000000'::timestamp without time zone
and start_dt < '2017-07-31 12:05:00.000000'::timestamp without time zone
and ST_DWithin(
(
ST_MakePoint(
(a.points->0 ->> 'lat'::text)::double precision,
(a.points->0 ->> 'lon'::text)::double precision)
)::Geography,
(ST_MakePoint(55.2252, 36.64547))::geography,
1000
)
Можно запилить что-нибудь вроде симбиоза IN() и ST_DWithin? т.к. проходиться много раз по таблице, прогоняя ST_DWithin'ом каждую точку погрузки - ад для постгреса, все координаты там в JSON.