【发布时间】:2018-11-01 17:30:57
【问题描述】:
我有一个包含EVENT_ACTION 和TIMESTAMP 列的表;在EVENT_ACTION 列中有两个可能的值,225 和 226。
225 代表start_time 和226 代表end_time;因为它们位于两个不同的行中,所以我尝试使用 LAG 或 LEAD 并遇到一些问题。
这是我目前所拥有的; MRDF 列是我的唯一 ID:
SELECT
f.EVENT_ACTION ,
(f.TIMESTAMP) AS starttime,
LEAD(f.TIMESTAMP) OVER (ORDER BY f.MRDF) AS endtime
FROM
dbo.flext f
WHERE
EVENT_ACTION IN (225,226)
ORDER BY
MRDF, EVENT_ACTION
这就是我得到的:它现在正在获取下一行的时间戳,正如我所想的那样:
我的最后一个 EVENT_ACTION 255 得到了一个空值。我打算把它放到一个临时表中,只取 EVENT_ACTION 225
如你所见,我迷路了 :-)。
任何帮助将不胜感激
迈克
【问题讨论】:
-
您能否展示您的源表架构和一些示例数据
标签: sql-server tsql lag lead