我是Postgres的初学者。我仍然主要通过解决问题来学习。
我有一个包含两个表的PostgreSQL数据库:trips
(包含有关车辆每次旅行的信息)和gps_points
(包含每次旅行所覆盖的GPS点)。
行程表包含列[id,start_time,end_time,vehicle_id]。 gps_points表包含[id,trip_id,纬度,经度]列。
如何编写查询以选择2018年1月1日(即在该日期开始和结束)完全包含的旅行中第4号车辆所覆盖的GPS点(纬度和经度)。
答案 0 :(得分:0)
这应该可以解决问题:
select p.latitude
, p.longitude
from trips t
join gps_points p
on p.trip_id = t.id
where t.vehicle_id = 4
and date_trunc('day', t.start_time) = date '2018-01-01'
and date_trunc('day', t.end_time) = date '2018-01-01'