Agrupar linhas por períodos contíguos para grupos de valores

Considere alguma tabelaT, 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

Quero agrupar os dados para que as alterações sejam auditadas com facilidade / reduzam a repetição, por isso

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

Eu posso fazer isso facilmente se conseguir outra coluna com as linhas numeradas como1 2 3 3 (importante apenas que os números sejam distintos) e depoisGROUP BY essa coluna.

Minha tentativa na consulta:

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

não dá o que estou procurando:

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

Quero que a consulta reconheça o segundo grupo de-90 Os valores devem ser tratados como um novo grupo, pois apareceram após um grupo com um grupo diferente.rate.

A tag SQL [gaps-and-islands] foi bastante útil, mas não sou capaz de descobrir como lidar quando a taxa volta ao valor anterior. Como devo modificar minha consulta?

questionAnswers(1)

yourAnswerToTheQuestion