Вы можете определить последовательный набор цифр тем, что число - его позиция в наборе будет постоянным, например,
Val3 | RowNumber | Val - RowNumber
4 | 1 | 3
5 | 2 | 3
6 | 3 | 3
8 | 4 | 4
9 | 5 | 4
Как вы можете видеть Val - RowNumber
столбец остается постоянной для каждого последовательного набора. Таким образом, чтобы применить это к вашему запросу:
WITH GroupedT AS
( SELECT Number,
Val1,
Val2,
Val3,
GroupingSet = Val3 - DENSE_RANK() OVER(PARTITION BY Number, Val1, Val2 ORDER BY Val3)
FROM T
), SequentialT AS
( SELECT Number,
Val1,
Val2,
Val3,
SequenceCount = COUNT(*) OVER(PARTITION BY Number, Val1, Val2, GroupingSet)
FROM GroupedT
)
SELECT Number, Val1, Val2, val3
FROM SequentialT
WHERE SequenceCount > 1
ORDER BY Number, Val1, Val2, Val3;
Example on SQL Fiddle
Почему бы не 6024: 11,12? –
@OcasoProtal Извините, 6024: 11,12 тоже .... Отредактировал вопрос – Roshan
Почему не только 1 ряд с 6015,1,2,9 – DevelopmentIsMyPassion