Группировать строки по непрерывным диапазонам дат для групп значений

Рассмотрим таблицуT, заказанCol1, Col2, Date1, Date2:

Col1    Col2    Date1         Date2          rate
ABC     123     11/4/2014     11/5/2014      -90
ABC     123     11/4/2014     11/6/2014      -55
ABC     123     11/4/2014     11/7/2014      -90
ABC     123     11/4/2014     11/10/2014     -90

Я хочу сгруппировать данные так, чтобы изменения были легко проверены / уменьшены повторения, поэтому у меня есть

Col1    Col2    Date1         start_Date2    end_Date2      rate
ABC     123     11/4/2014     11/5/2014      11/5/2014      -90
ABC     123     11/4/2014     11/6/2014      11/6/2014      -55
ABC     123     11/4/2014     11/7/2014      11/10/2014     -90

Я могу легко сделать это, если я могу получить другой столбец с номерами строк, как1 2 3 3 (важно только то, что числа различны), а затемGROUP BY этот столбец.

Моя попытка запроса:

SELECT *, DENSE_RANK() OVER (ORDER BY rate) island
FROM T
ORDER BY Date2

не дает то, что я ищу:

Col1    Col2    Date1         Date2          rate     island
ABC     123     11/4/2014     11/5/2014      -90      1
ABC     123     11/4/2014     11/6/2014      -55      2
ABC     123     11/4/2014     11/7/2014      -90      1
ABC     123     11/4/2014     11/10/2014     -90      1

Я хочу, чтобы запрос распознал вторую группу-90 Значения следует рассматривать как новую группу, так как они появились после группы с другимrate.

SQL-тэг [gaps-and-Islands] был довольно полезен, но я не совсем могу понять, как справиться, когда скорость возвращается к предыдущему значению. Как мне изменить мой запрос?

Ответы на вопрос(1)

Ваш ответ на вопрос