Я пытаюсь выяснить, как я могу пометить уникальные (то, что я называю) блоки (или сегменты, если вы захотите), которые имеют начальные и конечные последовательные строки «Поездка», упорядоченные по «эпоха» использует один и тот же «код». В этом случае группа «trip», «code» не будет работать, так как мне нужно измерить длительность «кода», остается постоянной для поездки. Я попытался использовать CTE, но я не смог разбить данные таким образом, чтобы он дал желаемый результат, показанный ниже. Номер блока, который я показал, может быть любым значением, только до тех пор, пока он уникален, поэтому он маркирует последовательные вхождения одного и того же «кода» в поездке в порядке «эпохи».Создание блоков в CTE-SQL Server
Любые идеи?
declare @data table (id int, trip int, code int NULL, epoch int, value1 int, value2 int);
insert into @data (id, trip, code, epoch, value1, value2)
values
(1, 1, null, 31631613, 0, 0),
(2, 2, 1, 31631614, 10, 40),
(3, 1, 1, 31631616, 10, 60),
(4, 1, 1, 31631617, 40, 60),
(5, 2, 1, 31631617, 23, 40),
(6, 2, 2, 31631620, 27, 40),
(7, 2, 2, 31631629, 23, 40),
(9, 1, 1, 31631618, 39, 60),
(10, 1, null, 31631621, 38, 60),
(12, 1, null, 31631625, 37, 60),
(15, 1, null, 31631627, 35, 60),
(19, 1, 1, 31631630, 39, 60),
(20, 1, 1, 31631632, 40, 60),
(21, 2, 1, 31631629, 23, 40);
block id trip code epoch value1 value2
1 1 1 NULL 31631613 0 0
2 2 2 1 31631614 10 40
2 5 2 1 31631617 23 40
3 3 1 1 31631616 10 60
3 4 1 1 31631617 40 60
3 9 1 1 31631618 39 60
4 6 2 2 31631620 27 40
4 7 2 2 31631629 23 40
5 10 1 NULL 31631621 38 60
5 12 1 NULL 31631625 37 60
5 15 1 NULL 31631627 35 60
6 19 1 1 31631630 39 60
6 20 1 1 31631632 40 60
7 21 2 1 31631629 23 40
Какая версия SQL Server? – dazedandconfused
Кроме того, почему не последняя строка в вашем выводе (trip = 2, code = 1, epoch = 31631629) четвертая строка ... вверх с другой поездкой = 2, код = 1 запись? Тот же вопрос для поездки = 1, код = 1 строка. – dazedandconfused
SQL 2008 R2 & Thanks ошеломлен забрать в моих случайных данных, которые я пробил поздно ночью. Я также заметил это, когда через день я вернулся к проблеме. Во всяком случае, я сделал какой-то прогресс, который поможет. – user3064548