Agrupe filas por intervalos de fechas contiguos para grupos de valores

Considera alguna mesaT, Ordenado porCol1, 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

Quiero agrupar los datos para que los cambios sean auditados fácilmente / reducir la repetición, así que tengo

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

Puedo hacerlo fácilmente si puedo obtener otra columna con las filas numeradas como1 2 3 3 (solo es importante que los números sean distintos), y luegoGROUP BY esa columna

Mi intento en la consulta:

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

no da lo que estoy buscando:

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

Quiero que la consulta reconozca el segundo grupo de-90 los valores deben tratarse como un nuevo grupo, ya que aparecieron después de un grupo con un grupo diferenterate.

La etiqueta SQL [gaps-and-islands] fue bastante útil, pero no puedo entender cómo manejar cuando la tasa vuelve a un valor anterior. ¿Cómo debo modificar mi consulta?

Respuestas a la pregunta(1)

Su respuesta a la pregunta