1
GPS 추적기에서 주기적으로 보내는 데이터가 포함 된 테이블이 있다고 가정합니다.GPS 메시지를 디 크립트하여 연속적인 트립
CREATE TABLE unit_messages
(datetime timestamp, speed numeric, trip_distance numeric);
그것은 자동차를 구동하고 정지 한 때 0으로 리셋 될 때 성장 메시지가 전송 타임 스탬프, 속도 등을 trip_distance를 포함한다.
('2017-10-26T13:41:41', 0.0, 0.0),
('2017-10-26T13:41:57', 23.0, 0.1),
('2017-10-26T13:42:01', 11.0, 0.1),
('2017-10-26T13:42:18', 20.0, 0.2),
('2017-10-26T13:42:33', 56.0, 0.4),
('2017-10-26T13:42:41', 58.0, 0.5),
('2017-10-26T13:43:13', 0.0, 0.6),
...
('2017-10-26T14:03:38', 12.0, 13.5),
('2017-10-26T15:21:52', 0.0, 0.0)
목표는 SQL 쿼리는 TRIP 엉 이러한 서명 생성하는 것이다 : FROM_DATE는 날짜가
from_date, to_date, trip_distance
때 trip_distance = 0
(2017-10-26T13 : 41 : 41 첫 번째 행)에
및 TO_DATE 지난 trip_distance이되기 전에 행
0 (': 03 : 38 2017-10-26T14', 12.0, 13.5 등의 행 (에서)의 날짜입니다 전에 마지막)
내가 가진 유일한 해결책은 순차적으로 루프의 SELECT 결과를 반복하는 것입니다. 누군가 SQL을 사용하여이 작업을 수행하는 방법이 있습니까?
거리 0.0을 기준으로 그룹을 만들면됩니다. https://stackoverflow.com/questions/tagged/gaps-and-islands를 확인하십시오. –