我有一个带有StartDate列的表,我想计算两个连续记录之间的时间差。
谢谢。
@ Mark Byers和@ Yahia,我将请求表作为requestId,startdate
requestId startdate 1 2011-10-16 13:15:56 2 2011-10-16 13:15:59 3 2011-10-16 13:15:59 4 2011-10-16 13:16:02 5 2011-10-16 13:18:07
我想知道requestid 1和2、2和3、3和4等之间的时差是多少。我知道我需要在表上进行自我连接,但是我在子句上没有得到正确的支持。
要实现您的要求,请尝试以下操作(从OP编辑后进行更新):
SELECT A.requestid, A.starttime, (B.starttime - A.starttime) AS timedifference FROM MyTable A INNER JOIN MyTable B ON B.requestid = (A.requestid + 1) ORDER BY A.requestid ASC
如果requestid不是连续的,则可以使用
requestid
SELECT A.requestid, A.starttime, (B.starttime - A.starttime) AS timedifference FROM MyTable A CROSS JOIN MyTable B WHERE B.requestid IN (SELECT MIN (C.requestid) FROM MyTable C WHERE C.requestid > A.requestid) ORDER BY A.requestid ASC