я в настоящее время базы данных в следующем форматеразница во времени между значениями строк
ID | DateTime | PID | TIU
1 | 2013-11-18 00:15:00 | 1551 | 1005
2 | 2013-11-18 00:16:03 | 1551 | 1885
3 | 2013-11-18 00:16:30 | 9110 | 75527
4 | 2013-11-18 00:22:01 | 1022 | 75
5 | 2013-11-18 00:22:09 | 1019 | 1311
6 | 2013-11-18 00:23:52 | 1022 | 89
7 | 2013-11-18 00:24:19 | 1300 | 44433
8 | 2013-11-18 00:38:57 | 9445 | 2010
У меня есть сценарий, где мне нужно, чтобы определить, где имеются пробелы в процессах более чем за 5 минут с помощью DateTime
колонки.
Пример того, что я пытаюсь достичь:
ID | DateTime | PID | TIU
3 | 2013-11-18 00:16:30 | 9110 | 75527
4 | 2013-11-18 00:22:01 | 1022 | 75
7 | 2013-11-18 00:24:50 | 1300 | 44433
8 | 2013-11-18 00:38:57 | 9445 | 2010
ID3 последней строка перед вторым зазором 6 минут 1 ID4 является следующей строкой после него.
ID7 - последняя строка перед 14-минутным 7-секундным промежутком, ID8 - следующая доступная запись.
Я пытаюсь сделать это в SQL, однако, если это необходимо, я могу сделать это на C# для обработки.
Я пробовал несколько внутренних соединений, однако таблица имеет более 3 миллионов строк, поэтому производительность сильно страдает.
Хотя решения на основе набора прекрасны и делают SQL столь же мощным, как это, это может потребовать итеративного решения. Тем не менее, он все равно может быть выполнен (и, вероятно, лучше) в SQL. Если вы пытаетесь найти эти пробелы между этой строкой и следующей, курсор и вставка в таблицу temp или CTE, вероятно, то, что вы ищете. –