У меня есть временной ряд, и мне нужно создать подмножества временных интервалов, которые не имеют больших зазоров (что-то большое, чем 30 минут - большой пробел). Это SQL 2008, поэтому я не могу использовать функции Lead()
/Lag()
.Пропуски SKIP более 30 минут в столбце временной отметки
Каждый раз, когда есть промежуток не менее 30 минут, мне нужен новый ряд с началом и концом следующего «большого безразмерного» интервала. Например, если больших зазоров нет, результатом будет одна строка с min
и max
временных меток. Если есть 1 'большой' промежуток, будет 2 строки - от начала серии до промежутка и от промежутка до конца. Если есть еще пробелы, мы получаем строки для каждого интервала между зазорами и т.д.
Вход: timestamp
2015-07-15 15:01:21
2015-07-15 15:17:44
2015-07-15 15:17:53
2015-07-15 15:18:34
2015-07-15 15:21:41
2015-07-15 15:58:12
2015-07-15 15:59:12
2015-07-15 16:05:12
2015-07-15 17:02:12
Желаемый результат:
from | to
--------------------+-------------------
2015-07-15 15:01:21 | 2015-07-15 15:21:41
2015-07-15 15:58:12 | 2015-07-15 16:05:12
2015-07-15 17:02:12 | 2015-07-15 17:02:12
Спасибо так много - я работаю на это в течение нескольких дней без везения, и мое решение курсора слишком медленное.
Dont дублировать свои вопросы http://stackoverflow.com/questions/37579492/detect-gaps-over-30-min -in-timestamp-column –
Кстати вы можете прочитать [** ЭТО **] (http://blog.sqlauthority.com/2011/11/24/sql-server-solution-to-puzzle-simulate-lead-and -lag-without-using-sql-server-2012-аналитическая функция /), чтобы узнать дублирующее отставание/вывод в 2008 году –