时间和坐标:我怎样才能找到这个结果?

时间:2017-11-17 10:48:42

标签: sql postgresql

Longitude,latitude,time
0,1,1
0,1,2
0,1,3
2,4,4
2,5,5
2,4,6

我的结果是:0,1,1 1次,因为它们是连续的,2,4 2次,因为它们在时间上不是连续的。我该如何计算这个结果?

1 个答案:

答案 0 :(得分:1)

这是一个例子,我无法在iPad上进行测试,而且-9999也不完美,这不一定在您的数据中。

Select x.lat,x.lng,sum(case when lat=nextlat and lng=nextlng then 0 else 1 end ) s
From
(    Select lat,
            lng,
            lead(lat,1,-9999) over (order by time) nextlat ,              
             lead(lng,1,-9999) over (order by time) nextlng
     From table
) x
Group by x.lat,x.lng