Gruppenzeilen nach zusammenhängenden Datumsbereichen für Wertegruppen

Betrachten Sie einige TabelleT, bestellt durchCol1, 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

Ich möchte die Daten gruppieren, damit Änderungen einfach überprüft werden können / Wiederholungen reduzieren, also habe ich

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

Ich kann das leicht tun, wenn ich eine andere Spalte mit den als @ nummerierten Zeilen bekomm1 2 3 3 (nur wichtig, dass Zahlen verschieden sind) und dannGROUP BY diese Spalte.

Mein Versuch bei der Abfrage:

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

gibt nicht was ich suche:

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

Ich möchte, dass die Abfrage die zweite Gruppe von @ erken-90 -Werte sollten als neue Gruppe behandelt werden, da sie nach einer Gruppe mit einem anderenrate.

Das SQL-Tag [gaps-and-islands] war ziemlich hilfreich, aber ich bin nicht in der Lage, herauszufinden, wie ich damit umgehen soll, wenn die Rate auf einen vorherigen Wert zurückgesetzt wird. Wie soll ich meine Abfrage ändern?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage