如何在Postgres SQL的同一个表中获得两个事件之间的时间差异?

时间:2016-01-21 09:50:01

标签: sql postgresql join

我有一个包含两列的表,即类型和时间。数据包括两种类型:A和B.

实际数据包括在表中交替出现的两种类型及其各自的时间戳(即,行1:a,t1;行2:b,t2;行3:a,t3;行4:b,t4)。如何计算A型和B型之间的所有时间差(即,我需要(t2-t1)和(t4-t3))。

谢谢,我很感激使用sql join

的答案

1 个答案:

答案 0 :(得分:1)

您可以尝试这样的事情:

SELECT B.MyTIME-A.MyTIME 
FROM (SELECT MyROW , MyTYPE, MyTIME, ROW_NUMBER() OVER (ORDER BY MyTIME ASC) AS RNA FROM MyTable WHERE MyTYPE='A') A
INNER JOIN
(SELECT MyROW , MyTYPE, MyTIME, ROW_NUMBER() OVER (ORDER BY MyTIME ASC) AS RNB FROM MyTable WHERE MyTYPE='B')B
ON B.RNB=A.RNA