Row TimeStamp
____|________________________
1 | 2015-01-01 12:00:01.000
2 | 2015-01-01 12:00:02.000
3 | 2015-01-01 12:00:03.000
4 | 2015-01-01 12:00:04.000
5 | 2015-01-01 12:00:05.000
6 | 2015-01-01 12:00:06.000
7 | 2015-01-01 12:00:07.000
8 | 2015-01-01 12:00:08.000
9 | 2015-01-01 12:00:09.000
Выбор TimeStamp предыдущей строки была довольно простой задачейВыбрать предыдущую строку для каждой записи в таблице/Список
например
SELECT MAX([TimeStamp])
FROM [MyTable]
WHERE [TimeStamp] < '2015-01-01 12:00:02.000'
получает 2015-01-01 12:00:01.000
как ожидалось.
Однако у меня возникли проблемы с выбором списка TimeStamps из нескольких предыдущих строк.
Например, если бы я хотел, чтобы получить временные метки предыдущих строк для Его> = 3 & & < = 6
(i.e.
SELECT [TimeStamp]
FROM [MyTable]
WHERE [Row] >= 3 AND [Row] <= 6
=>
TimeStamps
2015-01-01 12:00:03.000
2015-01-01 12:00:04.000
2015-01-01 12:00:05.000
2015-01-01 12:00:06.000
)
Как бы я идти о получении предшествующей TimeStamp для каждого из них строки результатов?
(i.e.
TimeStamps
2015-01-01 12:00:02.000
2015-01-01 12:00:03.000
2015-01-01 12:00:04.000
2015-01-01 12:00:05.000
)
Я видел довольно много решений, связанных с лаг/свинца, но мое использование SQLServer 2008 трудно изменить.